当前位置:文档之家› 二级c语言程序设计习题及解答ch1-3

二级c语言程序设计习题及解答ch1-3

12)计算机能直接执行的程序是(B )。

A)源程序B)目标程序C)汇编程序D)可执行程序13)以下叙述中正确的是( D )A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整例年真题:#include<stdio.h>main(){Int a;A=5; /*给A变量赋值5A+=3; 再赋值后再加3*/Printf(“%d”,a);}(11)以下叙述中正确的是( C )。

A)C 程序的基本组成单位是语句B)C 程序中的每一行只能写一条语句C)简单C 语句必须以分号结束D)C 语句必须在一行内写完(11)以下叙述中正确的是( C )A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中(12)以下选项中,能用作用户标识符的是( C )A)voidB)8_8C)_0_D)unsigned【解析】A:关键字不可以B:不以数字开头C:正确D:关键字(13)以下选项中合法的标识符是( C )A)1-1 B)1—1C)-11D)1—【解析】A:不以数字开头,出现非法字符-而不是_ B:不以数字开头,非法字符C:正确D: 不以数字开头,出现非法字符(14)以下选项中不合法的标识符是( C )A)print B)FOR C)&a D)_00【解析】C:出现非法字符&(15)以下选项中,能用作数据常量的是( D )A)o115 B)0118 C)1.5e1.5D)115L【解析】A:八进制以0开头而不是以o开头B:八进制最大值为7,范围0-7 C:指数必须为整数D: 长整型正确(13)以下选项中不能作为C语言合法常量的是(A)。

A)'cd'B)0.1e+6 C)"\a" D)'\011'【解析】A:字符常量只能有一个字符(16)以下选项中不属于字符常量的是( B )A)'C'B)"C"C)'\xCC0' D)'\072'【解析】B:字符常量以单引号作为标志,其为字符串(14)表达式:4-(9)%2的值是( B )A)0B)3C)4D)5【解析】(9)%2=1(取余),4-1=3(14)设变量已正确定义并赋值,以下正确的表达式是 ( C )A)x=y*5=x+zB)int(15.8%5)C)x=y+z+5,++yD)x=25%5.0【解析】A:等号左边必须为变量,不可以为表达式,y*5是表达式B:%只适用于整型变量D: %只适用于整型变量(15)若有定义语句:int x=10;,则表达式x-=x+x的值为( B )A)-20B)-10C)0D)10【解析】先算右边得20,x-=20,则10-20=-10(14)设有定义:int x=2;,以下表达式中,值不为6的是 ( D )A) x*=x+1 x=x*(x+1)B) x++,2*xC)x*=(1+x)D)2*x,x+=2【解析】逗号表达式的最终结果看最后一个表达式,x+=2,结果为4(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是 (A)A)x=y==5;B)x=n%2.5;C)x+n=ID)x=5=4+1;【解析】等号左边必为变量,不能为常量或数字排除C 、D,%只能用于整数排除B第三章输入输出习题讲解(13)阅读以下程序#includemain(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f\n”,case,printF);}该程序编译时产生错误,其出错原因是(A)A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(16)有以下程序#includemain(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运行后的输出结果是(D)A)0,0B)1,0C)3,2D)1,2【解析】b=a+b即b=1,a=2*b,a=2(15)程序段:int x=12;double y=3.141593; printf(“%d%8.6f”,x,y);的输出结果是(A )A)123.141593B)123.141593C)12,3.141593D)12 3.141593【解析】“%d%8.6f”原样输出,没有,也没有空格,所以x与y相连,小数总共8位,小数点之后6位#include <stdio.h>main(){double a=123.456;printf("%6.2f",a);}结果:123.46例题:int x;x=11/3;int y=5;printf("%%d,%%%d\n",x,y); 结果是:%d,%3【解析】"%%d,%%%d\n"原样输出,%%d中第一个%为转义字符,不是输出占位符,所以原样输出%d,然后%%转义只输出一个%,%d\n只有一个占位符,所以只输出x的值为3[3.5] 若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是( D )A)read(a,b,c); B)scanf(“ %d%d%d” ,a,b,c);C)scanf(“ %D%D%D” ,&a,%b,%c);D)scanf(“ %d%d%d”,&a,&b,&c);【解析】scanf中赋值必须用&(取地址符),即将输入的字符放在指定位置中[3.6] 若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c 赋予33,以下不正确的输入形式是( B )A)10 B)10.0,22.0,33.0 C)10.0 D)10 2222 22.0 33.0 3333scanf(“ %f %f %f” ,&a,&b,&c);【解析】输入时可以空格可以回车,但是不可以出现,复合语句:多个语句被{}括起来,当成一条语句来执行。

空语句:最后的表示只有一个;程序举例:1。

编写一个程序,从键盘上输入两个数字,让后让他们互换一下。

#include<stdio.h>main(){int a,b;printf("请输入两个数字:");scanf("%2d%3d",&a,&b);printf("qian:%d %d",a,b);int c;c=a,a=b,b=c;printf("后:%d %d",a,b);}2。

编写程序,对一个double型数据进行四舍五入运算。

要求保留两位有效数字。

123.4567两种算法:(1)#include <stdio.h>main(){double k=1234.4567;k+=0.005;printf("%7.2f",k);}(2)#include <stdio.h>main(){double k=1234.4567;k*=100;k+=0.5;k=(int)k;k/=100;printf("%7.2f",k);}3。

编写程序,使从键盘中输入的三位数倒着输出。

#include <stdio.h>main(){int a,three,two,one;printf("请输入一个三位数:");scanf("%d",&a);three=a/100; //取出百位two=a%100/10; //取出十位one=a%10; //取出个位printf("%d%d%d",one,two,three);}选择题[3.1] 若a、b、c、d、都是int类型变量且初值为0,以下选项中不正确的赋值语句是( C )A)a=b=c=d=100; B)d++; C)c+b; D)d=(c=22)-(b++);【解析】C是表达式,无法完成赋值[3.2] 以下选项中不是C语句的是( C )A){int i; i++; printf(“%d\n”,i);} B);C)a=5,c=10 D){ ; }【解析】C是表达式,没有; 结尾,只有;的语句是空语句[3.3] 以下合法的C语言赋值语句是( D )A)a=b=58 B)k=int(a+b); C)a=58,b=58 D)--i;【解析】语句必须以;结尾,B中强制类型转换的正确写法为k=(int)(a+b);[3.4] 以下程序的输出结果是( C )A)0 B)1 C)3 D)不确定的值main( ){ int x=10, y=3;printf(“%d\n”,y=x/y); }【解析】除法并且两边都为整型,最后也是整型[3.7] 若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是( D )A)a=a+b,b=a-b,a=a-b; B)t=a,a=b,b=t;C)a=t;t=b;b=a;D)t=b;b=a;a=t;[3.8] 若变量已正确定义,以下程序段的输出结果是( D )A) 输出格式说明与输出项不区配,输出无定值 B)5.17C)5.168 D)5.169X=5.16894;Printf(“ %f\n”,(int)(x*1000+0.5)/(float)1000);【解析】其上市四舍五入发,保留3位有效数字[3.9] 若有以下程序段,c3中的值是( A )A)0 B)1/2 C)0.5 D)1int c1=1,c2=2,c3;c3=c1/c2;【解析】不够除,商0[3.10] 若有以下程序段,其输出结果是( B )A)3,0,-10 B)0,0,5 C)-10,3,-10 D)3,0,3int a=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(“ %d,%d,%d\n”,a,b,c);【解析】a-=a-5得a=5,赋值给c=5,后面将b赋值给a,a=0,b+3执行了,但是并没有改变b的值辨析:int a=0,b=0,c=0;c=((a-=a-5),(a=b,b+3));printf(" %d,%d,%d\n",a,b,c);【解析】a-=a-5得a=5,没有赋值给c,后面将b赋值给a,a=0,b+3执行后赋值给了c;因为逗号表达式永远是最后一个逗号后的值赋值给c,只是相差一个(),结果就不同了。

相关主题