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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

c语言习题.docx

1、c语言习题1C语言中,int型数据在计算机部是由( )表示的。答:int型数据在计算机部是由16位补码表示的。2下列可以作为C语言用户标识符的是( )。 A) _123 B) a1b2c3 C) int D) 123abc答:A)和B)C语言标识符必须是以英文字母(a到z)、或者下划线_开头的字符串。字符串中只能包含英文字母、下划线和数字(0到9)。但字符串不能是C语言中的32个保留字(例如int,short,long,unsigned,float,char,if,switch,for,while等)。3在语言中,如果下面的变量都是int类型,则输出的结果是( )。 sum=pad=5,pAd

2、=sum+,pAd+,+pAd; printf(%dn,pad);答:输出结果是5。因为C语言是字母大小写敏感的,也就是说区分大小写字母。pad和pAd是两个不同的变量。4以下程序的输出结果是 ( )。 #include main() printf(%dn,NULL);答:0因为stdio.h头文件中NULL的定义如下:#define NULL 05下面程序的输出是( )。main() int x=10,y=3; printf(%dn,y=x/y);答:3因为两个同类型的数据作算术运算,其结果仍为该类型。即整数除以整数,商仍为整数。10/3的商为3。6下面程序的输出是( )。main() in

3、t x=023; printf(%dn,-x);答:18因为023是一个八进制数,表达式-x的值为022,按照%d带符号的十进制数输出,结果为18。注意:023是八进制数;23是十进制数;0x23是十六进制数。7在C语言中,不正确的int类型的常数是( )。A)32768 B)0 C)037 D)0xAF答:A)8执行下面程序中的输出语句后 a的值是( )。main() int a; printf(%dn,(a=3*5,a*4,a+5);答:15因为在计算逗号表达式a=3*5,a*4,a+5时,依次计算下面3个表达式:a=3*5(结果变量a的值为15,该赋值表达式的值也为15)a*4(该算术表

4、达式的值为60)a+5(该算术表达式的值为20,输出函数printf输出20)逗号表达式的值为20,但变量a的值认为15。9以下程序的输出结果是( )。 #include main() int a=2,c=5; printf(a=%d,b=%dn,a,c); A)a=%2,b=%5 B)a=2,b=5 C)a=%d,b=%d D)a=%d,b=%d答:D)因为%是格式说明符,输出%,其它原样输出。如果输出函数语句改成printf(a=%d,b=%dn,a,c);,那么输出结果为A)。 10以下程序的输出结果是( )。 #include main() int a,b,d=241; a=d/100

5、%9; b=(-1)&(-1); printf(%d,%dn,a,b); A)6,1 B)2,1 C)6,0 D)2,0答:B)241/100的值为2,2%9的值为2。(-1)&(-1)的值为1。在逻辑运算中,非0的值为真,真“与”真结果为真,关系和逻辑运算的结果如果为真用“1”表示,如果为假用“0”表示。 11请选出以下语句的输出结果( )。printf(%dn,strlen(t065xffn);答:5函数strlen的功能是计算字符串长度。那么字符串t065xffn包含多少个字符呢?t是横向跳格字符;”是字符”;065是ASCII码值为八进制数065的字符;xff是ASCII码值为十六进制

6、数0xff的字符;n是换行字符。该字符串共有5个字符。注意:记住常用的转义字符。12下面程序的输出结果是( )。int i = 65536;printf(%dn, i);答:-1因为int型变量i在C语言中是用16位补码表示的,而65535变成二进制数为11111,因此i的值为11111,按照带符号的十进制数%d输出-1,因为11111是-1的补码。13若有说明和语句: int a=5;a+;此处表达式a+的值是( )。答:表达式a+的值是表达式计算后,变量a的值是。14若k为int变量,则以下语句( )。k=8567;printf(|%-06d|n,k);答:|8567 |两个|原样输出,格

7、式符%-06d说明输出变量k的值长度为6且左对齐。15若x 为float型变量,则以下语句( )。x=213.82631;printf(%-4.2fn,x);答:213.8316若x为double变量,则以下语句( )。x=213.82631;printf(%-6.2en,x);答:2.14e+0217若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),则执行下列语句ch=a;k=12;printf(%x,%o,ch,ch,k);printf(k=%dn,k);输出为()。答:61,141,k=%d18若有以下定义:char s=092;则该语句()。A).使s

8、的值包含1个字符 B).定义不合法,s的值不确定C).使s的值包含4个字符 D).使s的值包含3个字符 答:B)因为字符092中的092应该是八进制数,但八进制数中不可能出现9。19执行以下语句后,输出结果是( )。 int a 1; printf(d,d,a,a+);答:2,1因为C语言中函数的实参计算顺序是从右至左。即首先计算 a+,然后计算a。20以下程序的输出结果是( )。 #include main () int i=010,j=10; printf(%d,%dn,+i,j-); )11,10 )9,10 )010,9 )10,9答: B)010是八进制数。21已知字母的ASCII码

9、为65,以下程序的输出结果是( )。#include main( ) char c1=A,c2=Y; printf(%d,%dn,c1,c2); 答:65,8922以下语句int a110,b017;printf(x,dn,a,b);输出结果是( )答:6e,16110的十六进制数为6e,八进制数017加1为020,等于十进制数16。23以下程序main() int i3,j2,a,b,c; a(ij)?i:j; bi; cj; printf(d,d,dn,a,b,c); 输出结果是( )答:1,1,324请读程序 #include main() int a; float b, c; scan

10、f(%2d%3f%4f, &a, &b, &c); printf(na=%d,b=%f,c=%f,a,b,c);若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是( )。答:a=98,b=765.000000,c=4321.00000025请读程序片段(字符串没有空格字符): printf(%dn,strlen(ASTn0121);上面程序的输出结果是( )。答:9字符串中包含9个字符,分别是A S T n 0 1 2 1 。26以下程序的输出结果是( )main() int i1;printf(d,un,i,i); 答:-1,655351判断型 char 变量 c1

11、 是否为小写字母的正确表达式为( )。A) a=c1=a)&(c1=c1)|(z=c1)D) (c1=a)&(c1b)&(n=cd); printf(%d,n);答:2首先计算m=ab,因为关系运算符优先级高于赋值运算符=,ab的结果为假(0),赋值后m的值为0。因为C语言计算逻辑表达式0&(n=cd)时,已经知道结果为0,因此n=cd就不计算了。N的值仍为2。3执行以下语句后 a 的值为( );b 的值为( )。int a,b,c;a=b=c=1;+a|+b&+c;答:a的值为2;b的值为1。4程序的运行结果是( )。main() int x=10,y=20,z=30; if(xy) z=x

12、;x=y;y=z; printf(%d,%d,%d,x,y,z); 答:20,30,30因为if(xy)z=x;x=y;y=z;是三条语句,即:if(xy)z=x;x=y;y=z;而不是: if(xy) z=x;x=y;y=z; 5程序的运行结果是( )。main() int m=5; if(m+5)printf(%dn,m); else printf(%dn,m-);答:6因为表达式m+5的值为假,m的值为6,执行语句printf(%dn,m-);时输出6,m的值又变为5。6程序的运行结果是( )。main() int a=100,x=10,y=20,m=5,n=0; if(xy) if(y

13、!=m) a=1; else if(n)a=10; a=-1; printf(%dn,a);答:-1在if嵌套中,else总是与它上面最近的if结合,因此本程序变为:if(xy) if(y!=m) a=1; elseif(n) a=10; a=-1; 最后变量a的值为-1。7若有条件表达式 (exp)?a+:b-; 则以下表达式中能完全等价于表达式(exp)的是( )A) (exp=0) B) (exp!=0)C) (exp=1) d) (exp!=1)答:B)因为表达式(exp)的意义是:当变量exp的值为0时表示假;当变量exp的值为非0时表示真。因此它与(exp!=0)等价。8程序的运行

14、结果是( )。main() int k=4,a=3,b=2,c=1; printf(%dn,ka?k:cb?c:a);答:1因为运算符?的结合性是自右至左。因此首先计算cb?c:a,结果为1,然后计算kB&CA|!AB 的值是( )。答:010当 m=2,n=1,a=1,b=2,c=3 时,执行完d=(m=a!=b)&(n=bc) 后,n=( ),m=( )。答:n=0,m=1因为首先计算关系运算a!=b,结果为真即1,再计算赋值运算m=1;再计算bc,结果为假即0,赋值n=0;最后d 的值为假即0。11程序的运行结果是( )。main() int x,y,z; x=1;y=2;z=3; x=

15、y-=x|x+y!=z; printf(%d,%d,x,y);答:1,1因为关系运算符优先级高于逻辑运算符,因此首先计算y-0) case 1:switch(b0的值为真(1),计算case 1:后面的语句switch(b0) case 1:printf();break; case 2:printf(!);break; 由于表达式b0的值为假(0),因此本语句执行结束。又由于本语句后面无break语句,因此继续执行switch(c=5) case 0:printf(*);break; case 1:printf(#);break; default:printf(?);break; 结果输出 #

16、 ,由于上面的语句后面也无break语句,因此继续执行语句printf(&);输出 & 。14下面程序的输出是( )。main()int a=-1,b=4,k;k=(a+=0)&(!(b-=0);printf(%d%d%dn,k,a,b);答:1 0 3关系表达式a+=0的值为真(即1),因为首先判断-1=0,然后执行a+,变量a的值为0;关系表达式!(b-=0) 的值为真(即1),因为首先判断4=0, 然后执行b-,变量b的值为3,最后执行逻辑非运算!;逻辑表达式(a+=0)&(!(b-0)y=1; else y=0;A)y= -1 (x0) B)y= 1 (x0) C)y= 0 (x0)

17、D)y=-1 (x0) 0 (x0) 1 (x0) 0 (x0)答:C)16下面程序的输出是( )。main() int x=100,a=10,b=20,ok1=5,ok2=0;if(a0?1:x0)y=1; b) if(x)else if(x0)y=1;else y=0; else y=-1;c)y=-1; d) y=0;if(x) if(x0) if(x0)y=1; if(x0)y=1;else if(x=0)y=0; else y=-1;else y=-1;答:A)18设a6,b8,c3,以下逻辑表达式的值为( )。 d(ab)(bc)(ac)答:0 19若执行下面的程序时从键盘上输入3

18、和4,则输出是( )。 main() int a,b,s; scanf(%d%d,&a,&b); s=a; if(a5)printf(%d,x); else printf(%dn,x-);答:7 522假定所有变量均已正确说明,下列程序段运行后x值是( )。 a=b=c=0;x=35; if (!a) x-; else if(b);if (c) x=3; else x=4;答:4该程序:a=b=c=0;x=35;if (!a) x-; else if(b);if (c) x=3; else x=4;23以下两条if 语句合并成一条if 语句为( )。if (ab) printf(*y=%dn,

19、y);else printf(#x=%dn,x);答:if (a=b) x=1; printf(#x=%dn,x); else y=2; printf(*y=%dn,y); 1下面程序段的运行结果是( )。x=y=0;while(x15) y+,x+=+y;printf(%d,%d,y,x);答:8,20y+,x+=+y;是一个逗号表达式语句,首先计算y+,然后计算x+=+y。2程序的运行结果是( )。#includemain() int c=0; while(c=2) c+; printf(%dn,c); 答:1233输入 2473 ,下面程序的运行结果是( )。#includemain()

20、 int c; while(c=getchar()!=n) switch(c-2) case 0: case 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3); default:putchar(c+2);break; printf(n);答:668977第一次函数getchar()从键盘读取字符2,变量c的值为字符2,因此c-2的值为0,执行case 0:后面的语句putchar(c+4);和putchar(c+4); 执行break;语句后,switch语句执行结束。此次输出字符66。4下面程序段输出结果为( )。i

21、nt x=3;do printf(%dn,x-=2); while(!(-x);答:1 -25不是无限循环的语句为( )。A) for(y=0,x=1;x+y;x=i+)i=x;B) for( ; ;x+=i);C) while(1)x+;D) for(i=10; ;i-) sum+=i;答:A)6下面程序段的运行结果是( )。for(y=1;y10;) y=(x=3*y,x+1),x-1);printf(x=%d,y=%d,x,y);答:x=15,y=14执行完第1次循环后x=3 y=2执行完第2次循环后x=6 y=5执行完第3次循环后x=15 y=147程序的运行结果是( )。#inclu

22、demain() int a,b; for(a=1,b=1;a=20) break; if(b%3=1) b+=3; continue; b-=5; printf(%dn,a);答:88下面程序段不是无限循环的是( )。A) int i=100; while(1) i=i%100+1; if(i100)break; B) for( ; ; );C) int k=0; do+k; while(k=0);D) int s=36; while(s);-s;答:C)i值只能是从1到100之间变化,i100永远是假,因此break永远也不会被执行。for循环语句的第2个表达式没有,意味着永远为真。每次循

23、环k的值加1,当k的值为32767时,再执行+k,k的值变为-32768,循环结束。因为语句s并不在循环中,while(s);永远执行一个空语句。9下面程序段( )。x=3;do y=x-; if (!y) printf(*);continue; printf(#); while(1=x=2);A)输出# B)输出#*C)无限循环 D)含有不合法的控制表达式答:C)第一次循环执行y=x-;后x和y的值分别为2和3,因此输出1个#。执行1=x=2时由于逻辑运算符=的结合性是从左至右,因此首先计算1=x,结果为真(即1),然后计算1=2,结果仍为真,再次执行循环。可以看出无论1=x为真(即1)或者为假(即0),1=x=2的值始终为真,因此循环为无限循环。10程序的运行结果是( )。#includemain()int k=0;char c=A; do switch(c+) case A:k+;break; case B:k-; case C:k+=2;break; case D:k=k%2;continue; case E:k=k*10;break; default:k=k/3;

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

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