2022年河北专接本C语言程序设计模拟试卷(1)
河北省普通高校专科接本科教育考试C 语言程序设计模拟试卷一
(考试时间:75 分钟)
(总分:150 分)
说明:请在答题纸的相应位置上作答,在其它位置上作答的无效。
一、单项选择题(本大题共 20 小题,每小题 2 分,共 40 分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)
1. 以下叙述不正确的是
A. 一个C源程序可由一个或多个函数组成 B. 一个C源程序必须包含一个main函数
C. C程序的基本组成单位是函数 D. 在C程序中,注释说明只能位于一条语句的后面
2. 在C语言中,假设所有变量均为整型,则表达式(a=3,b=7,a++,a+b)的值是
A.1O B.11 C.4 D. 13
3. 在C程序中,有语句“int k=7,x=12;”,则下列表达式的值为3的是
A. x%=k-k%5 B. x%=(k-k%5) C. x%=(k%=5) D. (x%=k)-(k%=5)
4. 在C语言中,非法的字符常量是
A. '\t' B. '\17' C. "\n" D. '\xaa'
5. 若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是
A. (exp==0) B. (exp!=0) C. (exp==1) D. (exp!=1)
6. 在C语言中,有语句“int a,b; scanf("a=%d b=%d",&a,&b);”,下列输入方法能使a的值为2、b的值为3的是
A. a=2 b=3 B. a=2,b=3 C. 2,3 D. 2 3
7. 若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是
A. switch(x) B. switch((int)x);
{ case 1.0: printf("*\n"); { case 1.0:printf("*\n");
case 2.0: printf("**\n"); case 2.0: printf("**\n");
} }
C. switch(a+b) D. switch(a+b)
{ case 1: printf("*\n"); { case 1: printf("*\n");
case 2+1: printf("**\n"); } case c: printf("**\n");
} }
8. 以下程序段的输出结果是
int a[]={1,2,3,4,5,6},*p;
p=a;
*(p+3)+=2;
printf("%d,%d\n",*p,*(p+3));
A. 0,5 B. 1,5 C. 0,6 D. 1,6
9. C语言中函数返回值的类型由( )决定的。
A. return语句中的表达式类型 B. 调用该函数的主调函数的类型
C. 调用函数时临时决定 D. 定义函数时所指定的函数类型
10. 在C语言中,有以下程序段:
int a=10,b=O;
do{ b+=2;
a-=2+b; } while(a>=O);
程序段中循环体的执行次数是
A.2 B.3 C.4 D. 5、
11. 在C语言中,以下函数定义格式正确的是
A.double fun(int x,int y) B.fun(int x,y)
{ z=x+y; { int z;
retun z; return z;
} }
C.fun(x,y) D.double fun(int x,int y)
{ int x,y; { double z;
double z; z=x+y;
z=x+y; return z;
return z; }
}
12. 以下叙述中正确的是
A. 构成C程序的基本单位是函数 B. 可以在一个函数中定义另一个函数
C. main()函数必须放在其它函数之前 D. 所有被调用函数一定要在调用之前进行定义
13. 在C语言中,以下错误的定义语句是
A. int x[][3]={{0},{1},{1,2,3}};
B. int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C. int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
D. int x[][3]={1,2,3,4};
14. 在C语言中,有以下程序段:
char str[]="\tab\n\012\\\"";
printf("%d",strlen(str));
其输出结果是
A.3 B. 4
C.7 D.13
15. 能正确表示a和b同时为正或同时为负的表达式是
A. (a>=0||b>=0)&&(a<0||b
C. (a+b>0)&&(a+b
16. 若int i=10;执行下列程序后,变量i的正确结果是
switch(i)
{ case 0:i+=1;
case 10:i+=1;
case 11:i+=1;
default:i+=1;
}
A. 10 B.11 C. 12 D. 13
17. 下列程序的输出结果是
#include
struct abc
{ int a,b,c; };
main()
{ struct abc s[2]={{1,2,3},{4,5,6}};
int t;
t=s[0].a+s[1].b%s[0].c;
printf("%d\n",t);
}
A. 2 B. 3 C. 4 D. 7
18. 在下面关于指针的说法中,错误的一条是
A. 变量的指针就是变量的地址
B. 可以将一个整型量或任何其他非地址类型的数据赋给一个指针变量
C. 一个指针变量只能指向同一个类型的变量
D. 指针变量中只能存放地址
19. 以下程序运行后的输出结果是
#include
main()
{ int i=5,j=0;
do{j=j+(--i);}
while(i<2);
printf("%d\n",j);
}
A. 4 B. 5 C. 6 D. 9
20. 在下列叙述中,正确的一条是
A. puts和gets函数只能输入或输出一个字符串
B. 在C语言中,函数可以递归调用或递归定义
C. 用scanf函数输入数据时可以规定精度,例如scanf("%7.2f",&a);
D. 外部变量只限于本文件中使用
二、阅读程序题(共5小题,每小题6分,共30分)
1. 【程序】
#include
main()
{ int i,a[]={1,2,3,4,5,9,8,7,6,5};
void tran(int *);
tran(a);
for(i=0;i<10;i++)
printf("%3d",a[i]);
}
void tran(int *p)
{ int t,*d,*e;
d=p;e=p+9;
while(d { t=*d;*d=*e;*e=t; d++;e--; } } 【运行结果】 2. 【程序】 请写出输入“24,16”时的输出结果 #include main() { int a,b,num1,num2,temp; scanf("%d,%d",&num1,&num2); if(num1>num2) { temp=num1; num1=num2; num2=temp; } a=num1,b=num2; while(b!=0) { temp=a%b; a=b; b=temp; } printf("%d,%d\n",a,num1*num2/a); } 【运行结果】 3. 【程序】 #include int fun(int n) { static int f=1; f=f*n; return f; } main() { int i; for(i=1;i<=5;i++) printf("%d\t",fun(i)); } 【运行结果】 4. 【程序】 #include main() { int a=3,b=2,c=1; c-=++b; b*=a+c; { int b=5,c=12; c/=b*2; a-=c; printf("%d,%d,%d,", a,b,c); a+=--c; } printf("%d,%d,%d\n", a, b, c); } 【运行结果】 5. 【程序】程序运行时,输入B #include main() { char grade; scanf("%c",&grade); switch(grade) { case'A':printf(">=85"); case'B':printf(">=75"); case'C':printf(">=60"); case'D':printf("<60"); default:printf("errror"); } } 【运行结果】 三、程序填空题(共3题,每空5分,共35分) 1. 功能是:用递归的方法求菲波那契数列2,2,4,6,10,16,26,42,68,110,……的第10项 #include long fib(int n) { if(n>=______________ ) return___________________ ; else return________________ ; } main() { printf("%ld\n",fib(10)); } 2. 函数delchar的功能是:删除字符串s中的所有数字字符 #include void delchar(char *s) { int i,n=0; for(i=0; s[i]!='\0';i++) if(___________________ ) s[____________ ]=s[i]; s[n]='\0'; } 3. 功能是:输出方阵中主对角线和、副对角线上元素的和sum1和sum2 #include #define N 3 main() { int a[N][N],i,j,sum1,sum2; sum1=sum2=0; for(i=0;i for(j=0;j scanf("%d",&a[i][j]); for(i=0;i { sum1+= _____________; sum2+=____________ ; } printf("%d,%d\n",sum1,sum2);} 四、编程题 (共3小题,每题15分 共45分) 1、打印以下图案: ** **** ****** ******** ********** 2、求一个3*4的矩阵各列元素的平均值;将原矩阵和求出的平均值全部输出。 3、编写函数int fun(char s[]),功能是:判断字符串是s否为回文,是回文返回1,否则返回0 河北省普通高校专科接本科教育考试C 语言程序设计模拟试卷二 (考试时间:75 分钟) (总分:150 分) 说明:请在答题纸的相应位置上作答,在其它位置上作答的无效。 一、单项选择题(本大题共 20 小题,每小题 2 分,共 40 分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。) 1. 下面四个选项中,均是不合法的用户标识符的选项是 A. A P_0 do B. b-a goto int C. float ia0 _A D. _123 temp int 2. 以下程序段输出的结果是 int a=-1,b=4,k; k=(++a<0)&&!(b--<0); printf("%d%d%d\n",a,b,k); A. 041 B. 040 C. 030 D. 031 3. 设有说明char w;int x;float y;double z;,则表达式w*x+z-y的值的类型为 A. float B. char C. int D. double 4. 以下程序段的输出结果是 int x=3; do { printf("%3d",x-=2);} while(!(--x)); A. 1 B. 3 0 C. 1 -2 D. 死循环 5. 若有说明:int a[3][4],则对a数组元素的正确引用是 A. a[2][4] B. a[1,3] C. a[1+1][0] D. a(2)(1) 6. 以下程序段的输出结果是 char w[][10]={"ABCD","EFGH","IJKL","MNOP"},k; for(k=0;k<3;k++) printf("%s\n",&w[k][k]); A. ABCD B. FGH E. EFG D. ABCD FGH KL JK EFG KL 7. 以下叙述中不正确的是 A.在函数中,通过return语句获得返回值 B.在函数中,可以有多条return语句 C.在函数中,如果没有return语句则不带回返回值 D.在C语言中,调用函数不必在一条独立的语句中完成 8. 以下程序段的输出结果是 int x=2,y=-1,z=2; if(x if(y<0)z=0; else z+=1; printf("%d\n",z); A. 2 B. 3 C. 1 D. 0 9. 下列程序段的输出结果是 char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf("%d",*--p); A. 非法 B. a[4]的地址 C. 3 D. 5 10. 以下错误的描述是 A. 不同的函数中可以使用相同的变量名 B. 在一个函数内部的复合语句中定义的变量可以在本函数范围内有效 C. 一个函数内部定义的变量只能在本函数范围内有效 D. 形式参数是局部变量 11. 设有:char str[]="Beijing"; 则执行:printf("%d\n",strlen(strcpy(str,"China")));后输出的结果为 A. 5 B. 7 C. 12 D. 14 12. 在下列叙述中,正确的一条是 A. 以下语句是正确的:char c[]="ab"; B. 一维数组的定义可采用下列格式:int a(10); C. 下面的语句定义了一个二维数组:float a[3,4]; D. 以下两个语句中的a[3][4]的含义相同:int a[3][4];a[3][4]=1; 13. 若有定义int (*pointer)[3],则标识符pointer是一个 A.指向整型变量的指针变量 B.指向有三个整型元素的一维数组的指针变量 C.指向函数的指针变量 D.指针数组名,有三个元素,每个元素均为一个指向整型变量的指针 14. 下列叙述中,正确的一条是 A.语句“goto 12;”是合法的 B.for(;;)语句相当于while(1)语句 C.if(表达式)语句中,表达式的类型只限于逻辑表达式 D.break语句可用于程序的任何地方,以终止程序的执行 15. 设变量定义如下,则对其中的成员num正确的应用是 struct student { int num; char name[20]; float score; } stud[10]; A.stud[1].num=10; B. student.stud.num=10; C.struct.stud.num=10; D. struct student.num=10; 16. 以下程序的输出结果是 main() { int x=4; fun(x); printf("\n"); } fun(int y) { if(y>0)fun(y-1); printf("%d ", y); } A.0 1 2 3 4 5 B. 4 3 2 1 C.0 1 2 3 4 D. 5 4 3 2 1 0 17. 语句while(E);中的表达式E等价于 A. E!=0 B. E!=1 C. E==0 D. E==1 18. 下面程序的运行结果是 main() { char ch[7]={"65ab21"}; int i, s=0; for(i=0;ch[i]>= '0'&&ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf("%d\n", s); } A. 12ba56 B. 6 C. 6521 D. 62 19. 定义如下变量和数组: int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是 for(i=0;i<3;i++)printf("%d",x[2-i] [i]); A. 7 5 3 B. 7 4 1 C. 9 5 1 D. 9 6 3 20. 以下程序的输出的结果是 int func(int a,int b) { return(a+b); } main() { int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(“%d\n”,r); } A.12 B. 13 C. 14 D. 15 二、阅读程序题(本题共5小题,每小题6分,共30分,请写出程序的运行结果) 1. 【程序】 #include main() { int s[]={1,2,3,1,2,1,1,3},k; int x[]={0,0,0,0}; for(k=0;k<8;k++) switch(s[k]) { case 1: case 2: case 3:x[s[k]]++; } for(k=0;k<4;k++) printf("%d ",x[k]); } 【运行结果】 2. 【程序】 #include void reverse(int a[],int n) { int i,t; for(i=0;i { t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;} } main() { int a[]={1,2,3,4,5,6,7,8,9,10},i; reverse(a,6); for(i=0;i<10;i++) printf("%3d",a[i]); } 【运行结果】 3. 【程序】 #include int func(int a,int b) { static int m=0, i=2; i+=m+1; m=i+a+b; return m; } main() { int k=4,m=1,p; p=func(k,m);printf("%d,",p); p=func(k,m);printf("%d\n",p); } 【运行结果】 4. 【程序】 #include #define ADD(x) x+x main() { int m=1,n=2,k=3; int sum=ADD(m+n)*k; printf("sum=%d\n",sum); } 【运行结果】 5. 【程序】 #include struct STU { char name[10];int num;int score; } main() { struct STU s[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580}, {"WangYin",20043,680},{"SunDan",20044,550},{"PengHua",20045,537}}, *p[5],*t; int i,j; for(i=0;i<5;i++) p[i]=&s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->score>p[j]->score) { t=p[i];p[i]=p[j];p[j]=t; } printf("%d%5d\n",s[0].score,p[0]->score); } 【运行结果】 三、程序填空题(共3题,每空5分,共35分) 1、以下程序的功能是:输出三位正整数中能被13整除的数 #include main() { int n; for(_________ ;______________ ;n++) if(n%13!=0) ____________; else printf("%d\n",n);} 2、阅读以下程序并填空。以下程序的功能是:计算: #include main() { int n; float ; scanf("%d",&n); while(n>0) { s=s+___________ ; n-- ; } printf("Result is:%f\n",s); } 3、以下程序的功能是:输出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身例如:153是一水仙花数,因为:153=13+53+33 #include main() { int i,a,b,c; for(i=100;i<=999;i++) { a=____________ ; b= _____________; c= _____________; if(a*a*a+b*b*b+c*c*c==i) printf("%d\n",i); } } 四、编程题(共3小题,每题15分 共45分) 1、编写函数fun,其功能为计算数列“1,-2,3,-4,…,n-1,-n”的和。 要求:(1)利用宏定义将n定义为10; (2)函数的调用和结果的输出由主函数main()处理,计算过程由fun函数处理; (3)在main()中用printf()输出结果。 2、编写函数void fun(int a[],int n),功能是:将数组a中的前n个元素倒序存放。 3、编写程序,通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课程成绩。函数fun 的功能是将存放学生数据的结构体数组,按照姓名的字典序(从大到小)排序。 以上就是关于2022年河北专接本C语言程序设计模拟试卷(1)的全部内容了,如果你还有专升本相关的疑惑(如专升本报名、考试动态、院校招生简章、统考动态、湖南专升本院校、历年真题、考试大纲、专升本等相关信息),可以在文章下方留下你的联系方式,老师会第一时间联系到你,为你答疑解惑哦! 部分内容来源于网络转载、学生投稿,如有侵权或对本站有任何意见、建议或者投诉,请联系邮箱(1296178999@qq.com)反馈。
未经本站授权,不得转载、摘编、复制或者建立镜像, 如有违反,本站将追究法律责任!