收藏 分销(赏)

C语言程序设计-笔试试卷(一).doc

上传人:仙人****88 文档编号:8518954 上传时间:2025-02-16 格式:DOC 页数:10 大小:68.50KB
下载 相关 举报
C语言程序设计-笔试试卷(一).doc_第1页
第1页 / 共10页
C语言程序设计-笔试试卷(一).doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述
C语言程序设计 笔试试卷(一) 考试时间:120分钟 注意:请将答案书写在答卷纸上,否则不给分! 一、 单项选择题(每个选项1.5分,共60分) 1、以下叙述中正确的是( A )。 A)构成C程序的基本单位是函数 B)可以在一个函数中定义另一个函数 C)main()函数必须放在其它函数之前 D)所有被调用的函数一定要在调用之前进行定义 2、以下对C语言函数的有关描述中,正确的是( C )。 A)函数必须有返回值,否则不能使用函数 B)C函数既可以嵌套定义又可以递归调用 C)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 D)C程序中有调用关系的所有函数必须放在同一个源程序文件中 3、C语言的基本数据类型包括( B )。 A)整型,实型,逻辑型 B)整型,实型,字符型 C)整型,字符型,逻辑型 D)整型,实型,逻辑型,字符型 4、C语言中用于结构化程序设计的三种基本结构是( A )。 A)顺序结构、选择结构、循环结构    B)if、switch、break C)for、while、do-while             D)if、for、continue 5、下述合法的C语言的字符常量是( D )。 A)A B)65 C)"A" D)'\t' 6、下面不正确的赋值语句是( D )。 A)++t; B)n1=(n2=(n3=0)); C)k=i==j; D)a=a+b=1; 7、"b"在内存中以( B )个字节存放。 A)1 B)2 C)3 D)不确定 8、a是int类型变量,c是字符变量。下列输入语句中哪一个是错误的( B )。 A)scanf ("%d, %c",&a, &c); B)scanf (" %d%c", a, c); C)scanf (" %d%c", &a,&c ); D)scanf ( "d=% d, c=%c",&a, &c); 9、假设定义:int x = 3, y = 3; 则复合赋值表达式x /= 1+y的值为( A )。 A)0 B)0.75 C)6 D)以上都错 10、a=3*4,a+5; a的值为( B )。 A)17 B)12 C)60 D)5 11、若已定义x和y为double类型,则表达式: x=1,y=x+3/2的值是( C )。 A)1 B)2 C)2.0 D)2.5 12、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是( A )。 A)10<a<15 B)a==11||a==12||a==13||a==14 C)a>10&&!a>15 D)!(a<=10&&a>=15) 13、对于int x, y; 语句 if (x<0) y= -1; else if (!x) y=0; else y=1; 等价于( B )。 A) y=0; if (x>=0) if (x) y=1; else y= -1; B) if (x!=0) if (x>0) y=1; else y= -1; else y=0; C)if (x<0) y= -1; if (x!=0) y=1; else y=0; D)y= -1; if (x!=0) if (x>0) y=1; else y=0; 14、下列程序段执行后s值为( C )。 int i=1, s=0; do { if (!(i%2)) continue; s+=i; } while (++i<10); A) 1 B) 45 C) 25 D) 以上均不是 15、下列程序执行后,输出结果为( D )。 int func(int x,int y) {return x+y;} main() { int a=1,b=2,c=3,d=4,e=5; printf("%d\n",func((a+b,b+c,c+a),(d,e))); } A) 15 B)5 C)函数调用出错 D)9 16、对于以下程序段, 运行后i值为( B )。 int i=0, a=1; switch (a) { case 1: i+=1; case 2: i+=2; break; default: i+=3; } A) 1 B) 3 C) 6 D) 上述程序有语法错误 17、设有以下程序段,则( B )。 int x=0,s=0; while(!x!=0) s+=++x; printf(“%d”,s); A)运行程序段后输出0 B)运行程序段后输出1 C)程序段中的控制表达式是非法的 D)程序段执行无限次 18、下列程序中的变量已正确定义,要求程序段完成求5!(阶乘)的计算,不能完成此操作的程序段是( B )。P=1要在循环体外 A)for(i=1,p=1;i<=5;i++)  p*=i; B)for(i=1;i<=5;i++) { p=1; p*=i;} C)i=1; p=1; while(i<=5){p*=i; i++;} D)i=1; p=1; do{p*=i; i++; } while(i<=5);  19、下列程序运行后的输出结果是( C )。 main() {int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a<b); printf("%d,%d\n",k,m); } A) 0,0 B) 0,1 C) 1,0 D) 1,1 20、下列程序运行后的输出结果是( D )。 void fun(char *c,intd) {*c=*c+1;d=d+1; printf("%c,%c,",*c,d); } main() {char a='A',b='a'; fun(&b,a); printf("%c,%c\n",a,b); } A) B,a,B,a   B) a,B,a,B   C) A,b,A,b   D) b,B,A,b 21、下列程序运行后的输出结果是( )。 int f(int n) {if (n==1) return 1; else return f(n-1)+1; } main() {int i,j=0; for(i=1;i<3;i++) j+=f(i); printf("%d\n",j); } A) 4   B) 3   C) 2   D) 1 22、下列程序执行后的输出结果是( )。 char st[]="hello,friend!"; void func1(int i) { printf("%c",st[i]); if(i<3){i+=2;func2(i);} } void func2(int i) { printf("%c",st[i]); if(i<3){i+=2;func1(i);} } main() { int i=0; func1(i); printf("\n");} A) hello B) hel C) hlo D) hlm 23、在位运算中,操作数每左移1位,其结果相当于( )。 A)操作数乘以2 B)操作数除以2 C)操作数除以16 D)操作数乘以16 24、下列数组定义语句中合法的是( )。 A)int a[]=″string″; B)int a[5]={0,1,2,3,4,5}; C)char a=″string″; D)char a[]={0,1,2,3,4,5}; 25、若有以下的定义: int a[]={1,2,3,4,5,6,7,8,9,10},*p=a 则值为3的表达式是( )。 A)p+=2,*(p++) B)p+=2,*++p C)p+=3,*p++ D)p+=2,++*p 26、下列语句或语句组中,能正确进行字符串赋值的是( )。 A)char *sp;*sp="right!"; B)char s[10];s="right!"; C)char s[10];*s="right!"; D)char *sp="right!"; 27、假定所有变量均已正确说明,下列是程序段运行后x的值是( )。 a=b=c=0;x=35; if(!a) x--; else if(b); if(c) x=3; else x=4; A)34 B)4 C)35 D)3 28、下列程序运行后的输出结果是( )。 main() { int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7) if(p[i]%2) j+=p[i]; printf("%d\n",j); } A)42 B)45 C)56 D)60 29、下列程序运行后的输出结果是( )。 int f1(int x,int y){return x>y?x:y;} int f2(int x,int y){return x>y?y:x;} main() { int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d)); g=a+b+c+d-e-f; printf("%d,%d,%d\n",e,f,g); } A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,7 30、下列函数的功能是( )。 fun(char *a,char *b) { while((*a!='\0')&&(*b!='\0')&&(*a==*b)) {a++;b++;} return(*a-*b); } A)计算a和b所指字符串的长度之差 B)将b所指字符串连接到a所指字符串中 C)将b所指字符串连接到a所指字符串后面 D)比较a和b所指字符串的大小 31、下列程序运行后的输出结果是( )。 point(char *p){p+=3;} main() {char b[4]={'a','b','c','d'},*p=b; point(p);printf("%c\n",*p); } A)a B)b C)c D)d 32、下列程序运行后的输出结果是( )。 void ss(char *s,char t) { while(*s) {if(*s==t) *s=t-'a'+'A'; s++; } } main() {char str1[100]="abcddfefdbd",c='d'; ss(str1,c); printf("%s\n",str1); } A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd 33、C语言中函数返回值的类型是由( )决定的。 A)return语句中的表达式类型 B)调用该函数的主调函数类型 C)调用函数时临时指定 D)定义函数时所指定的函数类型 34、设有定义: struct sk {int a;float b;}data,*p; 若有p=&data;,则对data中的a域的正确引用是( )。 A)(*p).data.a B)(*p).a C)p->data.a D)p.data.a 35、若有下列说明和定义,则以下叙述中错误的是( )。 union dt {int a;char b;double c;}data; A)data的每个成员起始地址都相同 B)变量data所占的内存字节数与成员c所占字节数相等 C)程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000 D)data可以作为函数的实参 36、以下叙述中错误的是( )。 A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以 B)在程序结束时,应当用fclose函数关闭已打开的文件 C)利用fread函数从二进制文件中读数据,可以用数组名给数组中所有元素读入数据 D)不可以用FILE定义指向二进制文件的文件指针 37、有下列程序 #include <string.h> main(int argc,char *argv[]) {int i,len=0; for(i=1;i<argc;i++) len+=strlen(argv[i]); printf("%d\n",len); } 程序编译连接后生成的可执行文件是ex1.exe,若运行时输入带参数的命令行是: ex1 abcd efg 10<回车> 则运行的结果是( )。 A) 22   B) 17   C) 12   D) 9 38、若用数组名作为函数调用时的实参,则实际上传递给形参的是( )。 A)数组首地址 B)数组的第一个元素值 C)数组中全部元素的值 D)数组元素的个数 39、有一函数: int f(int a) { auto int b = 0; static int c = 3; b = b+1; c = c+1; return(a+b+c); } 如果有int i, j; 则执行两次调用:i=f(2); j=f(2) 后, i, j值为( )。 A) i = 7, j = 7 B) i = 7, j = 8 C) i = 8, j = 7 D) i = 8, j = 8 40、有下列函数则,调用f(“1234”)的返回结果是( )。 int f(char *s) { int k = 0; while (*s) k = k*10+*s++-’0’; return(k); } A) “1234” B) 1234 C) “4321” D) 4321 二、 填空题(每空2分,共40分) 1、判断一个字符是否是字母或数字的逻辑表达式是: 【1】 。 2、执行语句:for(i=1;i++<4;)后;变量i的值是 【2】 。 3、设有定义:int n,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。 scanf("%d", 【3】 ); printf("%d\n", 【4】 ); 4、以下程序运行后的输出结果是 【5】 。 main() {int x=10,y=20,t=0; if(x==y)t=x;x=y;y=t; printf("%d,%d\n",x,y); } 5、以下程序的输出结果为 【6】 。 main() { int x=2; while (x--); printf(“%d\n”,x); } 6、以下程序运行后的输出结果是 【7】 。 main() {int x=15; while(x>10&&x<50) {x++; if(x/3){x++;break;} else continue; } printf("%d\n",x); } 7、下面程序的功能是输出以下形式的金字塔图案是: * *** ***** ******* main( ) { int i,j; for(i=1;i<=4;i++) { for(j=1;j<=4-i;j++) printf(“ “); for(j=1;j<= 【8】__;j++) printf(“*”); printf(“\n”); } } 8、下面程序的功能是:将n行n列的矩阵A转置为A’,例如: 则A'= 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 当A= 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #define N 4 main() { int a[][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int i,j,t; for(i=0;i<N;i++) for(j=0; 【9】 ;j++) { t=a[i][j]; 【10】 ; a[j][i]=t; } } 9、下面程序的功能是用公式求π的近似值,直到最后一项的小于10- 6为止。请填空。 #include <stdio.h> #include <math.h> main() { long i=1; 【11】 pi=0; while(i*i<=1e+6) { pi= 【12】 ; i++; } pi=sqrt(6.0*pi); printf(“pi=%10.6f\n”,pi); } 10、以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。 int fun( int n) { int m=0,f=1,i; for(i=1; i<=n; i++) { m+=i*f; f= 【13】 ; } return m; } main() { printf("m=%d\n", 【14】 ); } 11、以下程序运行后的输出结果是 【15】 。 main() { int i,n[]={0,0,0,0,0}; for(i=1;i<=4;i++) { n[i]=n[i-1]*2+1; printf("%d ",n[i]); } } 12、以下程序运行后的输出结果是 【16】 。 void swap(int x,int y) { int t; t=x;x=y;y=t;printf("%d %d ",x,y); } main() { int a=3,b=4; swap(a,b);printf("%d %d\n",a,b); } 13、输入一个小于32768的正整数,程序求该数各位之和,如325,3+2+5=10。 main() { int i,t=【17】 ; scanf(“%d”,&i); while(【18】) { t+= 【19】 ; i/=10;} printf(“%d\n”,t); } 16、请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。 double max( 【20】 ); main() { double x,y; scanf("%lf%lf",&x,&y); printf("%lf\n",max(x,y)); } double max(double a,double b) { return(a>b?a:b); } 10
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服