资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
1本次理论作业发到指定邮箱: zkyzuoye126.com,最晚 2 周之内完成,主题写上 c 语言+姓名+学号+班级第一次单元练习(注:本卷中出现的 表示空格,表示回车)1.以下叙述正确的是(C)A.在 C 程序中 main 函数必须位于程序的最前面 B.C 程序的每一行中只能写一条语句C.C 语言本身没有输入输出语句D.C 程序的执行总是从其第一个函数开始2.字符串ABC在内存中占用的字节数是 (B )。A.3 B.4 C.6 D.8解析:因为在后面有停止位”0”,故占 4 个字节。3.下面正确的字符常量是(C)。A.“C” B.abc C. W D.以上结果都正确解析:因为字符常量用单引号表示,且只能有一个字符。4.设以下变量均为 int 类型,则值不等于 7 的表达式是(C)。A.(x=y=6,x+y,x+1) B.(x=y=6,x+y,y+1)C.(x=6,x+1,y=6,x+y) D.(y=6,y+1,x=y,x+1)解析:C 的答案是 12,括号运算符内,从左到右依次运算,但括号运算符的最终结果是最右边的运算结果。5.若有代数式 ,则不正确的 C 语言表达式是(C)。A.a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/b*3 解析:C 的结果为 。b3aec6.已知各变量的类型说明如下:则以下不符合 C 语言语法的表达式是(A)。int k, a, b, w=5; float x=1.42;A.x%(-3) B.w+=-2 C.k=(a=2, b=3, a+b) D.a+=a-=(b=4)*(a=3)解析:“%”是求余运算符,其两侧应为整型数据,选项 A 为 float 型数据。7.执行语句“x=(a=3,b=a-);”后,x,a,b 的值依次为 (C)。A.3,3,2 B.3,2,2 C.3,2,3 D.2,3,2解析:a=3 a 被赋值为 3;b=a中,b 被赋值为 a 当时的值 3,并以该值为远号表达式的值赋给变量 x,然后 a 的值被减少 1,故 x,a,b 的值依次为 3,2,3。8.下列四组选项中,均不是 C 语言关键字的选项是 (A)A. Define IF typeB. getc char printf2C. include case scanfD. while go pow9.下列语句中,符合语法的赋值语句是(D)A.a7bca+7; B.a7b,ca7;C.a=7b,b,a7; D.a(7b,ca7);解析:赋值运算符=是将一个变量和一个表达式连接起来的句子,故A,B 不符合,C 中存在逗号运算符和赋值运算符,赋值运算符的优先级高,故 C 的值为 a+7,不符合赋值语句。10.设有以下定义:int a=0;double b=1.25;char c=A;define d 2则下面语句中错误的是(D)。A.a+; B.b+; C.c+; D.d+; 解析:因为 d 为常量,如果执行 d+,就改变了 d 的值。11.程序的基本结构包含下列哪一种(D)。A.顺序结构 B.选择结构 C.循环结构 D.前三种都包含12.sizeof(float)是(B)。A.一个双精度型表达式 B.一个整型表达式C.一种函数表达式 D.一个不合法的表达式解析:sizeof()是测试长度的函数,得出来的结果应该是 float 占的字节数,故应为整型表达式。13.下列四组选项中,均是合法转义字符的选项是(A)。A.” nB. 017 ”C.018 f xabD.0 101 xlf解析:B 中错误,C 中018为八进制的数,里面的数应小于 8,故错误。D 中0应为0,代表空操作字符。14.输出函数 printf (%f, %4.3f n, 3.14, 3.14159); 的输出结果是(A)。A. 3.140000,3.142 B. 3.140000,3.140000C. 3.142,3.142 D. 3.14,3.14159解析:%f 默认的是六位小数点,%4.3f 表示长度为 4 小数 3 位(后面有数时四舍五入)选择 A。15.对于 printf 函数,在用 m.n 形式指定宽度时,以下说法错误的是(D):A.语句 printf(n%5s,abcdefghij);的输出是:abcdefghijB.语句 printf(n%.5s,abcdefghij);的输出是:abcdeC.语句 printf(n%7.5s,abcdefghij);的输出是:abcdeD.语句 printf(n%5s,abcdefghij);的输出是:abcde解析:%5s 指定输出输出数据字串符的宽度,小余 5 位用空格代替,若大于 5 位则原样输出。16.阅读以下程序,当输入数据的形式为:25,13,10(注:表示回车),则正确的输出结果为(D)。3void main() int x,y,z;scanf(%d%d%d ,&x,&y,&z);printf(x+y+z=%dn ,x+y+z);A. x+y+z=48 B.x+y+z=35 C. x+z=35 D.不确定值解析:因为 scanf 语句输入的可以是任何值。17.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为(B)。void main() char ch1,ch2,ch3;输入语句printf(%c%c%c ,ch1,ch2,ch3);输出形式:ABC输入形式:A,B,CA. scanf(%c%c%c,&ch1,&ch2,&ch3);B. scanf(%c,%c,%c,&ch1,&ch2,&ch3);C. scanf(%c %c %c,&ch1,&ch2,&ch3);D. scanf(%c%c,&ch1,&ch2,&ch3);解析;因为 scanf 语句形式要和输入变量形式相同。18.已知 ch 是字符型变量,下面不正确的赋值语句是 (A)。A. ch=a+b; B. ch=0; C. ch=7+9; D. ch=5+9;解析:A 中a+b不是单个字符,应该是个字符串,不能这样赋值。B 是转义字符。C 是两个字符相加,返回的也是字符。D 是整型,但可以强制类型转化为字符。19.执行下列程序片段时输出结果是(按 16 位机计算) (B)。unsigned int a=65535 ;printf(“%d”,a);A.65535 B.1 C.32767 D.1解析:在无符号整型中,65535 的二进制数是 1111 1111 1111 1111 最高位 1 表示负号,看成一个补码再取反得到 0000 0000 0000 00001,所以输出结果为-1.20.执行下列程序片段时输出结果是(D)。(“”代表空格)float x=-1023.012 ;printf(“n%8.3f,”,x);printf(“%10.3f”,x);A.1023.012,-1023.012 B.-1023.012,-1023.012C.1023.012,-1023.012 D.-1023.012,-1023.012解析:%10.3f 表示输出数据占 10 列,其中包括 3 位小数,不够时,首位用空格补充。21.对于下述语句,若将 10 赋给变量 k1 和 k3,将 20 赋给变量 k2 和 k4,则应按(D)方式输入数据。int k1,k2,k3,k4 ;scanf(“%d%d”,&k1,&k2);4scanf(“%d,%d”,&k3,&k4);A.1020 B.10 20 C.10,20 D.10 201020 10 20 10,20 10,20解析:scanf 语句要和输入值的形式相同,故选择 D。22.执行下列程序片段时输出结果是(C)。int x=13,y=5 ;printf(“%d”,x%=(y/=2);A.3 B.2 C.1 D.0解析:整数型相除,自动舍弃小数,y/=2 得 y=2,x%=2 表示 x=x/2 的余数,得 123.若定义 x 为 double 型变量,则能正确输入 x 值的语句是(C) 。A.scanf(“%f”,x); B.scanf(“%f”,&x);C.scanf(“%lf”,&x); D.scanf(“%5.1f”,&x);解析:double 是双精度浮点型,要用 lf 表示。24.已知 i,j,k 为 int 型变量,若从键盘输入:1,2,3,使 i 的值为 1,j 的值为2,k 的值为 3,以下选项中正确的输入语句是(C)。A.scanf(“%2d%2d%2d”,&i,&j,&k); B.scanf(“%d_%d_%d”,&i,&j,&k);C.scanf(“%d,%d,%d”,&i,&j,&k);D.scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);解析:scanf 语句时输入数据时在对应的位置输入相同的字符。25.已知 a,b 为 int 类型,有输入语句 scanf(“%2d,%*3d,%2d”,&a,&b);,如果输入如下信息:12,345,67,则 a,b 的值为(B)。A.a 为 12,b 为 345 B.a 为 12,b 为 67 C.a 为 34,b 为 67 D.编译出错解析:第一个%2d 表示取两位数赋给 a,为 12。第二个%*3d 表示跳过三个数字,故345 被跳过。第三个%2d 表示取两位数赋给 b,故为 67。26.以下程序的输出结果是(C)。 #include #include void main() int a=1,b=4,c=2; float x=10.5 , y=4.0 , z; z=(a+b)/c+sqrt(double)y)*1.2/c+x; printf(%fn,z); A.14.000000 B.15.400000 C.13.700000 D.14.900000解析:z=(a+b)/c+sqrt(double)y)*1.2/c+x=(1+4)/2+sqrt(4.0)*1.2/c+10.5=2+2.0*1.2/2+10.5=2+1.2+10.5=13.7 故选 C。27.以下程序的输出结果是(D ) 。 #include void main() 5 int a=2,c=5; printf(a=%d,b=%dn,a
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号