ImageVerifierCode 换一换
格式:DOCX , 页数:45 ,大小:37.59KB ,
资源ID:10259810      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10259810.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(湖北汽车工业学院C语言复习题.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

湖北汽车工业学院C语言复习题.docx

1、湖北汽车工业学院C语言复习题1设有定义:float a=2,b=4,h=3;以下c语言表达式中与代数式1/2(a+b)h计算结果不相符的是(B)A、(a+b)*h/2 B (1/2)*(a+b)*h C h/2*(a+b) D(a+b)*h*1/22 若有说明:int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是(B)A i=*p B*p=*&j C i=&j D i=*p3 有以下程序main() int a=1,b; for(b=1;b=8) break; if(a%2=1)a+=5;continue; a-=3; printf(%dn,b); 程序运行后的输出结果是_A_。A

2、 4 B 3 C 5 D 64. 有下程序:main()int a=2,4,6,8,10,y=0,X,*P;p=&al;for(x=l;x=20)&(i*i=100)这个条件的i出现时,break跳出循环,执行下列的prinff语句。5 有以下程序#include main() int i,j; for(i=3;i=1;i-) for(j=1;j=2;j+) printf(%d,i+j); printf(n); 程序的运行结果是_A_。C 2 3 3 4 4 5D 2 3 4 3 4 5A 4 5 3 4 2 3B 4 3 2 5 4 36 有以下程序执行后W结果是;int fun1(doub

3、le a) return a*a;int fun2(double x,double y) double a=0,b=0;a=fun1(x); b=fun1(y);return(int)(a+b);main() double w, w=fun2(1.1,2.0);.参考答案:5.07以下程序的输出结果是_D_。int f( ) static int i=0; int s=1; s+=i; i+; return s;main() int i,a=0; for(i=0;i5;i+) a+=f( ); printf(%dn,a);A 24 B 20 C 25 D 15 8 以下程序中函数sort的功能

4、是对a所指数组中的数据进行由大到小的排序。void sort(int a,int n)int i,j,t;for(i=O;in-1;i+)for=i+1 0n0+)if(aiaj)t=ai;ai=aj;aj=t;main()int aa10:1,2,3,4,5,6,7,8,9,10,i;sort(&aa3,5);for(i=0;ilO;i+)primf(d,aai);printf(n);)程序运行后的输出结果是_C_。A)l,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)l,2,3,8,7,6,5,4,9,10,D)l,2,10,9,8,7,6,5,4

5、,3,答案:C 评析:本题并不是对数组的所有元素进行排序,而是对从a3开始往后的4个元素进行排序。9下面能正确进行字符串赋值操作的语句是 CA) char s5=ABCDE;B) char s5=A,B,C,D,E;C) char *s;s=ABCDEF;D) char *s; scanf(%s,s);10.下面各语句行中,能正是行赋字符串操作的语句行是C A)CHAR ST45=“ABCDE”; B)CHAR S5=A,B,C,D,E; C)CHAR *S;S=“ABCDE”; D)CHAR *S;SCANF(“%S”,S);11已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的

6、值为l、j的值为2、k的值为3,以下选项中正确的输入语句是_C _。 A)scanf(2d2d2 dtt,&i,j,&k); B)scanf(ddd,&i,j,k); C)scanf(d,d,dfI,i,j,k); D)scanf(i=d,j=d,k=d,&i,&j,&k); 答案:C 评析:如果在格式控制字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。 12下列定义变量的语句中错误的是 DA)double int_; B)int _int; C)char For D)float US$13若以下选项中的变量已正确定义,则正确的赋值语句是CA) x1=26.8%

7、3 B) 1+2=x2 C) x3=0x12 (D) x4=1+2=3;14以下叙述中正确的是(C)A)break语句只能用于switch语句体中B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环C)break 语句只能用在循环体内和switch语句体内D)在循环体内使用break语句和continue语句的作用相同15.1以下函数值的类型是_A_fun(float x) float y;y=3*x-4;return y;A)int B)不确定 C)void D)float知识点:C语言函数的缺省的函数类型 15.2以下函数fun形参的类型是_D_ fun( float x

8、) float y;y=3*x-4;return y; A) int B) 不确定 C) void D) float 16下列叙述中正确的是(A)。A.每个c程序文件中都必须要有一个main函数B.在C程序中main()的位置是固定的C.C程序中所有函数之间都可以相互调用,与函数所在位置无关D.在C程序的函数中不能定义另一个函数17.设有定义:int a,paa;以下scanf语句中能正确为变量a读入数据的是 AA) scanf(“%d”,pa) ; B) scanf(“%d”,A) ; C) scanf(“%d”,pA) ; D) scanf(“%d”,pA) ; 18若x和y代表整型数,以

9、下表达式中不能正确表示数学关系|x-y|10的是 (C)A)abs(x-y)-10& x-y10C)!(x-y)10 D)(x-y)*(x-y)b) a=b; c=a;if(c!=a) c=b;printf(%d,%d,%dn,a,b,c); 其输出结果是CA) 程序段有语法错 B) 3,5,3 C) 3,5,5 D) 3,5,720 以下选项中,非法的字符常量是 (C)a) t b) 17 c)“n” d) xaa21.有以下程序main() int s=0,a=1,n; scanf(%d,&n); do s+=1; a=a-2; while(a!=n); printf(%dn,s);若要使

10、程序的输出值为2,则应该从键盘给n输入的值是_B_。A 0 B -3 C -5 D -122.有以下程序main() int i, j; for(i=1;i4;i+) for(j=i;j=0);if(x0)y=1;elsey=-1;B. if(x=0)if(x0)y=1;elsey=0;elsey=-1;C. if(x0)y=1;elseif(x=0)y=0;elsey=-1;D. y=0;if(x0)y=1;elseif(x0)y=-1;25以下对结构体类型变量的定义中,不正确的是CA) C)struct int n;float m; aa;struct aa tdl;D)struct in

11、t n;float m; tdl;typedef struct aa int n;float m;AA;AA tdl;B)#define AA struct aaAA int n;float m; tdl;26若有定义语句:char s10=123456700;,则strlen(s)的值 AA).7 B).8 C).9 D).1027. 设变量已正确定义,则以下能正确计算f = n!的程序段是(D) A) f=0; B) f=1; for(i=1;i=n;i+) f*=i; for(i=1;i1;i+) f*=i; for(i=n;i=2;i-) f*=i;28有定义语句:int x, y;,

12、若要通过scanf(%d,%d,&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是 AA)11 12 B)11, 12C)11,12 D)11, 29.设有定义:char p=1,2,3,*q=p;以下不能计算出一个char型数据所占自己数的表达式是A)sizeof(p) B)sizeof(char) C)sizeof(*q) D)sizeof(p0)答案应该选A。对于B,计算的是char类型的字节大小,明显不对。C、D答案等价,计算的都是字符1的所占字节数,所以也不对。 30.下列条件语句中,功能与其他语句不同的是 DA)if(a) printf(%dn

13、,x); else printf(%dn,y);B)if(a=0) printf(%dn,y); else printf(%dn,x);C)if(a!=0) printf(%dn,x); else printf(%dn,y);D)if(a=0) printf(%dn,x); else printf(%dn,y);A:如果a为真(不等于0就为真),就打印x,否则打印y;B:如果a等于0;就打印y,否则打印x;C:如果a不等于0,就打印x,否则打印y;D:如果a等于0,就打印x,否则打印y;A,B,C都是:如果0就打印y,否则x;31.有以下程序void fun2 (char a, char b)

14、 printf (%c %c, a,b);char a=A,b=B;void fun1() a=C ; b=D; main() fun1(); printf(%c %c ,a,b); fun2 (E, F);程序的运行结果是_D_。A .C D A B B. A B E F C .A B C D D. C D E F32在c语言中,函数中变量的隐含存储类别是_。A)autoB)staticC)externD)无存储类别答案:A评析:函数中变量的存储类别包括auto,static,extern,其中auto为隐含存储类别,static为静态存储类别,register是寄存器存储类别。A评析:函数

15、中变量的存储类别包括auto,static,extern,其中auto为隐含存储类别,static为静态存储类别,register是寄存器存储类别。33在调用函数时,如果实参是简单变量,它与对应形参间的数据传递方式是 AA 单向值传递 B 传递方式由用户指定 C 地址传递 D 由实参传给形,再由形参传回实参34有以下程序main()intaa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6;int i,s=0;for (i=0;i4;i+)s+=aai1;printf(%dn,s);程序运行后的输出结果是(B)A)11 B)19 C)13 D)2035若有定义:int a

16、a8;。则以下表达式中不能代表数组元素aa1的地址是A)&aa0+1 B)&aa1 C)&aa0+ D)aa+1【答案】C【解析】在C语言中,数组的地址和数组中的第一个元素的地址相同。数组中第一个元素地址的表示方法为&aa0,与其等价的有&aa0+;选项A为数组的第1个元素的地址下移一位即是第二个元素aal的地址;B也为数组的第二个元素的地址,选项D中aa表示数组的地址,加1表示数组首地址后移一位,即代表数组元素中的第二个元素aa1的地址。36若程序中有宏定义行:#define N 100 则以下叙述中正确的是B A) 宏定义行中定义了标识符N的值为整数100 B) 在编译程序对C源程序进行预

17、处理时用100替换标识符N C) 对C源程序进行编译时用100替换标识符N D) 在运行时用100替换标识符N 解析 本题考查的知识点是:宏定义。宏定义是预处理命令,即在C源程序进行编译之前,编译程序对源程序进行编译预处理时所进行的一种替换操作。所以选项C和 D可以排除。宏定义是用宏名代替一个字符串,也就是作简单的置换,不做正确性检查。所以选项A的叙述也不正确,宏替换时100被当作一个字符串来替换宏名的,而不是被看作整数值100。故本题的正确答案为B。37以下程序的输出结果是_A_ 。f(int b,int m,int n)int i,s=0;for(i=m;iy ? x:y; int z ;

18、z=xy ? x:y;return z ;C) max (int x,int y) D) int max(int x,int y) int z; return(xy?x:y) ; z=xy?x:y; return(z);41 有以下程序int fun(int n) if(n=1)return 1; else return(n+fun(n-1);void main() int x; scanf(%d,&x); x=fun(x);printf(%dn,x);执行程序时,给变量x输入10,程序的输出结果是A A)55 B)54 C)65 D)45A)解析:本程序考察的是函数的递归调用,在调用一个函数

19、的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用,执行结果为1+2+3+4+5+6+7+8+9+10=55。42有如下程序main() int n5 = 0,0,0,i,k = 2; for(i = 0; i k; i+) ni = ni + 1; printf(%dn,nk);该程序的输出结果是_A_。A 0 B 2 C 1 D 不确定的值43下面程序的输出是_D_。int m=13;int fun2(int x,int y) int m=3; return(x*y-m); main( ) int a=7,b=5; printf(%dn,fun2(a,b)/m); A.1 B.1

20、0 C.7 D.244下面程序输出的结果是Bmain() int i;int a33=1,2,3,4,5,6,7,8,9;for(i=0;i=10 or a=0|a=10 & a=10|a=049若有定义int a10,则a代表的是数组a的_ C A、第一个元素 B、最后一个元素 C、首地址 D、最后一个元素的地址50 运行C源程序的命令是_ D A、ALT+F5 B、ALT+F9 C、CTRL+F5 D、CTRL+F951. 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(B)A)大写字母 B)连接符 C)数字字符 D)下划线52设a和b均为double型常量,且a=5.5、b=

21、2.5,则表达式(int)a+b/b的值是_D_。 A) 6.500000 B) 6 C) 5.500000 D) 6.000000 53若有说明: int i,j=7, *p=&i;, 则与i=j; 等价的语句是(B )A. i= *p; B. *p=*&j; C. i=&j; D. i=* *p;54以下选项中,不能作为合法常量的是 BA)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e055有定义语句:char s10;,若要从终端给s输入5个字符,错误的输入语句是 DA)gets(&s0); B)scanf(“%s”,s+1); C)gets(s); D

22、)scanf(“%s”,s1);56设有说明语句:char a=72;则变量a() A) 包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法答案是A选项,57.1若已定义x和y为double类型,则表达式:x=1 y=x+3/2的值是:A) 1 B) 2 C) 2.0 D) 2.5解析:该表达式就是一个逗号表达式,所以要按照运算顺序先运算x=1,所以变量x的值为1.0,然后运算y=x+3/2,此表达式中需先计算二个整数相除3/2,结果为整数1,然后再与x相加,结果为2.0。由于逗号表达式x=1 y=x+3/2的值就是其最后一个表达式即y=x+3/2的值,此值即为2.0,所以正确的答案应该是C。57.2若已定义x和y为double类型,则表达式:x=2 y=x+3/2的值是:CA)3.500000 B

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1