好文档 - 专业文书写作范文服务资料分享网站

C语言期中测验试题及答案

天下 分享 时间: 加入收藏 我要投稿 点赞

2010-2011 C语言程序设计期中测验

填空题

16. 已知:int a=5,b=6,w=1,x=2,y=3,z=4;执行语句“(a=w>x)&&(b=y>z);”后b 的值为 6 19. 已知:int k= 4,a=3,b=2,c=1;则表达式“k

21. 下面程序的功能是用\辗转相除法\设两个数m,n,假设m>=n,用m除以n,求得余数r。若r为0,则n为最大公约数;若r不等于0,则进行如下迭代:m=n,n=r,即原除数变为新的被除数,原余数变为新的除数重复算法,直到余数为0为止。余数为0时的除数n,即为原始m、n的最大公约数。)求两个正整数的最大公约数。请填空。

#include <> int main() {int r,m,n;

scanf(\

if(m

while(r!=0){m=n;n=r;r= m%n;} printf(\ return 0; }

24. 下面程序的功能是打印100以内个位数为6且能被3整除的所有数。 #include <> int main ( ) { int i , j ;

for ( i = 0 ; i<10; i + + ) { j = i *10 + 6 ;

if (j%3!=0) continue; printf ( “ %d “ , j ) ; } }

26. 构成C语言程序的基本单位是函数。

28.下面程序的功能是在一个正整数的各数字中找出最大者,如4721,最大数为7。请填空。 #include<> int main() {

int n,max,t; max=0;

scanf(\ do{ t= n ;

if(max

printf(\

return 0; }

31. 若s是int型变量,且s=6,则下面表达式的值为 1 。 s%2+(s+1)%2

选择题

14. 以下定义语句,编译时会出现编译错误的是 A

A. char a=“a”; B. char a=’\\0’; C. char a=’a’; D. char a=‘\\x2d’; 15. 以下程序中的变量已正确定义 for(i=0;i<4;i++,i++)

for(k=1;k<3;k++);printf(\ 程序段的输出结果是D

A. ******** B.**** C. ** D. *

13. 设有定义: int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是: C

A. if(a>b)c=a,a=b,b=c; B. if(a>b){c=a,a=b,b=c;} C. if(a>b)c=a;a=b;b=c; D. if(a>b){c=a;a=b;b=c;} 12. 以下选项中,能用作用户标示符的是C

A. viod B. 8_8 C. _0_ D. unsigned 11. 有输入语句:int a,b,c; scanf(\为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应当是(注:#表示空格) D

A. 132<回车> B. 1,3,2<回车>

C. a=1#b=3#c=2<回车> D. a=1,b=3,c=2<回车> 2. 已知:char a=’a’;float b=;double c=41;int d;则执行语句d=a+b+c;后变量d的数据类型为 A

A. int B. char C. float D. double

3. 设整型变量x和y的值均为7,则表达式“x/(y-4)”的值是C

A. 3 B. -3 C. 2 D. 1 4. 设字符型变量ch中存放字符'A',则执行'ch+++5'后,ch中的字符是 B

A. A B. B C. F D. G 6. 若变量a的数据类型为double,执行下面两条语句后: a=;

printf(\

输出的数据或判断正确的是:D

A. 3 B. 4 C. D. 输出格式错误 10. 若有变量定义int a; double b; 要输入数据存放在a和b中,则下面正确的输入数据的语句为:C

A. scanf(\ B. scanf(\ C. scanf(\ D. scanf(\

编程题

20. 程序调试及改错:改正程序中的错误,不要改动主函数,不得增行或删行。

【问题描述】 本程序计算:y=1-1/2-1/3-1/4-…-1/m, 改正程序中的错误,不要改动主函数,不得增行或删行。

#include<> int main() { int m, i double y=;

scanf(“%d”, m);

for(i=2;i<=m; i++) y-=i*i;

printf( “the result is: %f\\n”, y ); return 0; }

修改为: #include<> int main() { int m, i; double y=;

scanf(\&m);

for(i=2;i<=m; i++) y-=(i*i);

printf(\lf\\n\ return 0; }

2222

23. 编程实现:输入整数a和b,若a+b大于100,则输出a+b百位及以上的数据,否则输出两数之和。

参考程序如下: #include<> int main() {

int a,b,temp;

scanf(\ temp=a*a+b*b; if(temp>100)

printf(\ else

printf(\ return 0; }

25. 编写程序实现:输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数7时(注意:n不得大于10),程序运行结果如下:

A B C D E F G H I J K L M N O P Q R

2222

S T U V W X Y Z A B

参考程序如下: #include<> int main() {

int i,n,j;

scanf(\ char c='A';

for(i=1;i<=n;i++) {

for(j=n;j>=i;j--) 或者 是 for(j=i;j<=n;j++) {

if(c>'Z')c='A'; printf(\ c++; }

printf(\ return 0; }

30. 输入一个正整数n,再输入n个学生的百分制成绩,统计各等级成绩的个数,成绩等级分为五级,分别为A(90~100),B(80~89),C(70~79),D(60~69)和E(0~59) 注:用switch语句实现。 参考程序如下:

#include<> int main() {

int n,score,A=0,B=0,C=0,D=0,E=0; scanf(\

for(int i=0;i

scanf(\ score=score/10; switch(score) {

case 10:

case 9:A++;break; case 8:B++;break; case 7:C++;break; case 6:D++;break;

default:E++;

}

}

printf(\ printf(\ printf(\ printf(\ printf(\ return 0; }

865xs79n6b8jj329nz0t2wkqq4mjdl00lzv
领取福利

微信扫码领取福利

微信扫码分享