c语言习题集及答案

选择题(本大题20题,每题2分,共40分)

1、下列不是C语言的特点的是(B)

a和C语言简洁紧凑。

b、能够编译功能复杂的程序。

C和C语言可以直接操作硬件。

d和c语言有很好的可移植性。

2.下列不正确的C语言标识符是(D)

a、ABC B、abc C、a_bc D、ab.c

3、一个C语言程序是由(b)组成的

一个主程序和几个子程序

b、功能构成

c、若干流程组成

d,由几个子程序组成

4、一个算法应该具备“确定性”等五个特征,其他四个特征的描述是错误的(B)。

a,有零个或多个输入

b,有零个或多个输出

c、贫困

d、可行性

5.如果变量A是整数,F是实数类型,I是双精度类型,那么表达式10+\’a\’+I * f的值的数据类型就是(c)。

a,int B,float C,double D,不确定性

6.在C语言中,char数据在内存中的存储形式是(D)。

a,补码b,补码c,源代码d,ASCII码

7.输入数据的步骤如下:12345m678 (

# include & ltstdio.h & gt

main(){

int x;

浮动y;

scanf(& # 34;% 3d % f & # 34,& ampx & amp;y);

}

a、B、C、D、345

8.如果int a,b,b定义如下;浮点x,正确的赋值语句是(b)

a、a=1,b=2

b、b++;

c、a=b=5

d、b = int(x);

9.以下过程的执行结果是(a)

# include & ltstdio.h & gt

{

int i=10,j = 10

printf(& # 34;%d,% d \\ n & # 34,++i,j-);

}

甲、乙、丙、丁、十、九

10.已知字母A的ASCII码是65,下面程序的执行结果是(D)。

# include & ltstdio.h & gt

主()

{

char c1 = & # 39一& # 39;,c2 = & # 39Y & # 39;

printf(& # 34;%d,% d \\ n & # 34c1,C2);

A、A、Y B、65、65 C、65、90 D、65、89

11、下列运算符中优先级最高的是(c)

a,< b,十c,% D,!=

12.设x,y,z为int变量,x = 3,y = 4,z = 5,则下面表达式中0的值为(d)。

a、x和amp& amp你好

b、x<=y

c、x | | y+z & amp;& ampy-z

d、啊!((x<y)&&!z ||1)

13.判断char变量cl是否小写的正确表达式是(D)。

a 、\’ a\'<=c1=a)和amp& amp(c1<=z)

c 、( \’ a\’>=c1) (\’z\’ = \’ a \’)& amp;& amp(c1<=\'z \')

14.字符串& # 34;一& # 34;内存中占用的字节数是(c)

a、0 B、1 C、2 D、3

15.下面对for循环的正确描述是(D)。

一、for循环只能在循环次数已经确定的情况下使用。

b、for循环是先执行循环体语句,再判断表达式。

在for循环中,不能用break语句跳出循环体。

d,for循环语句,可以包含多个语句,但要用花括号括起来。

16.下列程序的运行结果是(c)

# include & ltstdio.h & gt

主()

{ int num = 0;

while(num & lt;=2)

{ num++;

printf(\”%d,num \”);

}

}

答、1

b、1 2

c、1 2 3

d、1 2 3 4

17、下列描述正确的是(C)

a、因为do-while循环中的循环体语句只能是可执行语句,所以循环体中不能使用复合语句。

b . do-while循环以do开始,以while结束,while(表达式)后面不能写分号。

c、在do-while循环体中,必须有一个操作可以使while之后的表达式的值变为零(“false”)。

在d和do-while循环中,while可以根据情况省略。

18、下列关于一维塑料阵列的正确描述是a (D)。

a、int a(10);b、int n=10,a[n];

c、int n;d、int a[10];

scanf(\”%d \”,& ampn);

int a[n];

19、下列关于二维数组a的正确描述是(c)

a、inta[3][];b、浮点数a(3,4);

c、双a[1][4];d、浮动a(3)(4);

20.如果二维数组A有m列,则a[i][j]之前的元素个数为(b)。

a、j*m+i

我*m+j

c、i*m+j-1

d、i*m+j+1

二、填空题(此大题共10空,每题2分[/k0/],共20分)。

1.结构化设计中的三种基本结构是_ _顺序、循环和分支结构_ _ _ _ _ _ _ _ _ _ _ _ _ _ _。

2.在C语言中,实变量分为两种类型,分别是_ _单精度型和_ _双精度型。

3.当A = 5,B = 4,C = 2时,表达式A >;b!= c的值是_ _ 1 _ _ _

4.以下程序运行后的输出结果是_ _ _ _ _ _ _ _ _ _ _ _ _ _。

# include & ltstdio.h & gt

主()

{

int i,j;

for(I = 4;我& gt=1;我-)

{ printf(& # 34;* ");

for(j = 1;j & lt= 4-I;j++)

printf(& # 34;* ");

printf(& # 34;\\ n & # 34);

}

5.如果定义的话,int a [3] [4] = {{1,2},{0},{4,6,8,10 } };那么,初始化后,a[1][2]得到的初始值是_ _ _ _ _ _ _ _ _ _ _ A[2][1]得到的初始值是_ _ _ _ _ _ _ _ _ _ _ _ _ _。

6.在C语言中,二维数组元素在内存中的存储顺序是_ _ _ _ _ _ _ _ _ _ _ _ _ _。

三、程序分析题(此大题共2题,每题4分,共8分,描述程序功能,写出程序执行结果)

1 、# include & ltstdio.h & gt

主( )

{int a,s,n,count

a = 2;s = 0;n = 1;count = 1;

while(count & lt;= 7){ n = n * a;s = s+n;++计数;}

printf(\”s=%d \”,s);

}

2 、# include & ltstdio.h & gt

主()

{int a=[3][3]={1,3,5,7,9,11,13,15,17},sum=0,I,j;

for(I = 0;我& lt3;i++)

for(j = 0;j & lt3;j++)

if(I = = j)sum = sum+a[I][j];

printf(\”sum=%d\\n \”,sum);

}

四、编程题(本大题共4题,每题8分,共32分)

1.编写摄氏温度和华氏温度的转换程序。要求:从键盘输入摄氏温度,屏幕上显示对应的华氏温度,输出两位小数。转换公式:F=(C+32)×9/5。

2.尝试编程判断输入的正整数是否都是5和7的正整数。如果是,则输出是;否则,输出编号

3.判断数字m是否是质数(只能被1和自身整除的整数)?

4.将15个数排序,按从小到大的顺序输出。

C语言程序设计期末试卷(A卷)评分标准及标准答案

1.选择题(共20题,每题2分,共40分)

1、B 2、D 3、B 4、B 5、C

6、D 7、B 8、B 9、A 10、D

11、C 12、D 13、D 14、C 15、D

16、C 17、C 18、D 19、C 20、B

二、填空题(此大题共10空,每题2分[/k0/],共20分)。

1、序列结构分支结构循环结构。

2.单精度类型(或:浮点类型)双精度类型(或;双重类型]

3、 1

4、 *

* *

* * *

* * * *

5、 0 6

6、按主线顺序排列

三、程序分析题(本大题共2题,每题4分,共8分)

如果能正确表达题目的意思和要求,就可以得分,如果有一部分是正确的,就可以按比例得分,否则不得分。

1.函数:求S=0+2+4+8+16+32+64+128的和。

输出结果:s=254

2.函数:计算矩形数组A主对角线上元素的和..

输出结果:27

四、编程题(本大题共4题,每题8分,共32分)

如果能正确表达题目的意思和要求,格式正确,可以得满分,形式不要求一模一样。部分正确可以按比例计分,否则不予计分。

1 、# include & ltstdio.h & gt

主()

{ float c,f;

printf(& # 34;输入c:& # 34;);…………………………………..2分。

scanf(& # 34;% f & # 34,& ampc);…………………………………..2分。

f =(c+32.0)* 9.0/5.0;…………………………………..2分。

printf(& # 34;F = % .2f \\ n & # 34,f);…………………………………..2分。

}

2 、# include & ltstdio.h & gt

主()

{ int x;

scanf(& # 34;% d & # 34,& ampx);…………………………………..2分。

if(x % 5 = = 0 & amp;& ampX% 7 = = 0)……………………………………2分。

printf(& # 34;是的& # 34;);…………………………………..2分。

其他

printf(& # 34;不& # 34;);…………………………………..2分。

}

3、# include & ltstdio.h & gt

# include & ltmath.h & gt

主()

{int m,I,k;

scanf(& # 34;% d \\ n & # 34,& ampm);

k = sqrt(m);…………………………………..2分。

for(I = 2;我& lt= k;I++)…………………………………2分。

{if(m%i==0)

打破;…………………………………..2分。

}

如果(i & gtk)

printf(& # 34;m是质数!\\ n & # 34);…………………………………..2分。

}

4、# include & ltstdio.h & gt

主()

{int i,j,a[15],t;

printf(& # 34;输入15个数字:\\ n & # 34);

for(I = 0;我& lt15;i++)

scanf(& # 34;% d & # 34,& ampa[I]);…………………………………..2分。

for(j = 0;j & lt15;J++)…………………………………….2分。

for(I = 0;我& lt15-j;I++)…………………………………2分。

if(a[I]& gt;a[i+1])

{ t = a[I];a[I]= a[I+1];a[I+1]= t;} …………………………………….2分。

for(I = 0;我& lt15;i++)

printf(& # 34;% 6d & # 34,a[I]);

}

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论