C语言.docx
- 文档编号:8901239
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:12
- 大小:20.15KB
C语言.docx
《C语言.docx》由会员分享,可在线阅读,更多相关《C语言.docx(12页珍藏版)》请在冰点文库上搜索。
C语言
西北农林科技大学本科课程考试试题(卷)
2012—2013学年第1学期《C语言程序设计》课程A卷
专业班级:
命题教师:
审题教师:
学生姓名:
学号:
考试成绩:
一、填空题(每空1分,共10分)得分:
分
1、一个C源程序中至少应包含一个_______函数。
2、a是整型变量,则执行表达式a=25/3%3后a的值为________
3、intm=5,y=2;则表达式y+=y-=m*=y的值为_________
4、执行下列语句:
inta=1,b=2;a=a+b;b=a-b;a=a-b;printf("%d,%d\n",a,b);的输出结果分别是__________
5、条件表达式的格式为表达式1?
表达式2:
表达式3,若表达式2和表达式3的类型不同,此时条件表达式的值的类型为二者中较___的类型
6、当运行以下程序时,从键盘键入right?
#include
intmain()
{charc;
while((c=getchar())!
='?
')putchar(++c)
}
7、C语言中的数组必须先________,然后使用。
8、如果需要从被调用函数返回一个函数值,被调用函数必须包含________语句。
9、已知:
floatf1=3.2,f2,*pf1=&f1;f2=f1,则*f2的值为________
10、以下程序输出结果为________________
voidfun(char*a,char*b)
{a=b;(*a)++;}
intmain()
{charc1="A",c2="a",*p1,*p2;
p1=&c1;p2=&c2;fun(p1,p2);
printf(“&c&c\n”,c1,c2);return0;}
二、选择题(每小题1分,共30分)得分:
分
1、下列说法中正确的是。
(A)C语言程序总是从第一个定义的函数开始执行。
(B)在C语言程序中要调用的函数必须在main()函数中定义
(C)C语言程序总是从main()函数开始执行
(D)C语言程序中的main()函数必须在程序的开始部分
2、设有语句inta=3,则执行语句a+=a-=a*a以后变量a的值是:
。
(A)3(B)0(C)9(D)-12
3、在C语言中,要求运算数必须是整数的运算符是。
(A)%(B)/(C)<(D)1
4、以下程序的输出结果是。
intmain()
{inti=010,j=10;
printf(“%d,%d\n”,++i,j--);return0;
}
(A)11、10(B)9、10(C)010,9(D)10,9
5、若有如下定义变量:
intK=7,X=12;则能使值为3的表达式是。
(A)X%=(K%=5)(B)X%=(K-K%5)
(C)X%=K-K%5(D)(X%=K)-(K%=5)
6、以下程序段的输出结果是。
intfun(){staticintn;
n++;returnn;}
intmain()
{inti,a;
for(i=0;i<5;i++)a=fun();
printf(“%d\n”,a);
}
(A)1(B)0(C)6(D)5
7、在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为________。
(A)a<>0(B)!
a(C)a=0(D)a
8、有以下程序
intmain()
{
inta=15,b=21,m=0;
switch(a%3)
{case0:
m++;break;
case1:
m++;
switch(b%2)
{default:
m++;
case0:
m++;break;
}
}
printf(“%d\n”,m);return0;
}
程序运行后的输出结果是________。
(A)1(B)2(C)3(D)4
9、以下程序的输出结果是________。
intmain()
{inta=4,b=5,c=0,d;
d=!
a&&!
b||!
c;
printf("%d\n",d);return0;
}
(A)1(B)0(C)非0的数(D)-1
10、表达式“0?
(0?
3:
2):
(10?
1:
0)”的值为。
(A)3(B)2(C)1(D)0
11、若执行以下程序时从键盘上输入3和4,则输出结果是:
。
intmain()
{inta,b,s;
scanf(“%d%d”,&a,&b);s=a;
if(a
s*=s;
printf(“%d/n”,s);return0;
}
(A)14(B)16(C)18(D)20
12、把下面数学表达式,表示成C语言表达式。
-5≤x<10
(A)-5≤x<10(B)x≥-5&&x<10
(C)x>=-5&&x<10(D)-5= 13、已知grade=’B’,则下列程序段的运行结果为。 switch(grade) {case‘A’: printf(“85~100\n”);break; case’B’: printf(“70~84”); case’C’: printf(“60~69\n”);break; default: printf(“error\n”);} (A)70~84(B)60~69 (C)85~100(D)70~8460~69 14、若已定义a=8,b=2则表达式a||b&&(a-b*4)的运行结果是() (A)8(B)1(C)0(D)2 15、对以下for循环,叙述正确的是。 for(x=0,y=0;(y! =123)&&(x<4);x++,y++); (A)是无限循环(B)循环次数不定(C)执行了4次(D)执行了3次 16、下列程序段的执行结果是输出。 x=3; do {printf(″%2d″,x--);} while(! x); (A)321(B)3(C)21(D)210 17、执行下列程序后,i的值是。 inti,x; for(i=1,x=1;i<20;i++) { if(x>=10)break; if(x%2==1) {x+=5;continue;} x-=3; } (A)4(B)5(C)6(D)7 18、以下程序段输出结果是。 intmain() {intk,j,s; for(k=2;k<6;k++,k++) {s=1; for(j=k;j<6;j++) s+=j; } printf(“%d\n”,s);return0; } (A)9(B)1(3)11(4)10 19、以下程序段的输出结果是。 intx=3 do { printf(“%3d”,x-=2); } while(! (--x)); (A)1(B)30(3)1-2(4)死循环 20、以下正确的是。 (A)do-while语句构成的循环不能用其它语句构成的循环来代替 (B)do-while语句构成的循环只能用break语句退出 (C)用do-while语句构成循环时,只有在while后的表达式非零时结束循环 (D)用do-while语句构成循环时,只有在while后的表达式为零时结束循环 21、以下程序的输出结果是。 voidmain() { intx,i; for(i=1;i<=100;i++) {x=i; if(++x%2==0) if(++x%3==0) if(++x%7==0)printf(“%d”,x);} printf(“\n”);} (A)3981(B)4284(C)2668(D)2870 22、以下程序的输出结果是。 intmain() {intnum=0; while(num<=2) {num++;printf("%d\n",num);} return0;} (A)1(B)1(C)1(D)l 222 33 4 23、以下程序的输出结果是。 intmain() {inta,b; for(a=1,b=1;a<=100;a++) { if(b>=10)break; if(b%3==1) {b+=3;continue;} } printf("%d\n",a);return0;} (A)101(B)6(C)5(D)4 24、假设int型变量占两个字节的存储单元,若有以下定义,则数组x在 内存中所占字节数为 intx[10]={0,2,4}; (A)3(B)6(C)10(D)20 25、以下一维数组a的正确定义是。 (A)inta(10);(B)intn=10,a[n]; (C)intn;scanf(“%d”,&n);inta[n];(D)#defineSIZE10 inta[SIZE]; 26、在定义inta[5][4];之后,对a的正确引用是。 (A)a[2][4](B)a[5][0](C)a[0][0](D)a[0,0] 27、下列程序的执行结果是。 intmain() {intI,k=5,a[10],p[3]; for(I=0;I<10;I++)a[I]=I; for(I=0;I<3;I++)p[I]=a[I*(I+1)]; for(I=0;I<3;I++)k+=p[I]*2; printf(“%d\n”,k);return0;} (A)20(B)21(C)22(D)23 28、有以下程序 intmain() {intp[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2) {k=k+p[i];i++;} printf(″%d\n″,k);return0; } 执行后输出结果是。 (A)58(B)56(C)45(D)24 29、以下程序的输出结果是。 intmain() {inti,a[10]; for(i=9;i>=0;i--) a[i]=10-i; printf("%d%d%d",a[2],a[5],a[8]);return0;} (A)258(B)741(C)852(D)369 30、以下不能正确定义二维数组的选项是。 (A)inta[2][2]={{1},{2}}; (B)inta[][2]={1,2,3,4}; (C)inta[2][2]={{1},{2,3}}; (D)inta[2][]={1,2},{3,4}}; 三、判断题(共10分,每小题分标在小题后)得分: 分 1.在C程序中,语句之间必须要用分号“;”分隔。 () 2.在C程序中所用的变量必须先定义后使用。 () 3.C程序中的注释部分可有可无,通常可以省略。 () 4.在C程序中,APH和aph是两个不同的变量。 () 5.在C程序中,无论是整数还是实数,都能准确无误的表示。 () 6.在C程序中,赋值运算符的优先级最低。 () 7.若a和b是同类型变量,在执行了赋值语句a=b;后b中的值将放入a中,b中的值将丢失。 () 8.当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值。 () 9.break语句只能用在循环语句中。 () 10.continue语句只能用于循环语句中。 () 四、程序分析题(共10分)得分: 分 1、写出该程序的功能 intmain() { int i,j,k; printf("\n"); for(i=1;i<5;i++) for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i! =k&&i! =j&&j! =k) printf("%d,%d,%d\n",i,j,k); } return0;} 2、以下程序用“辗转相除法”来求出两个正整数的最大公约数。 请填空。 若两个数分别放在m和n中,求最大公约数的算法如下: (1)将两数中最大的那个放在m中,小的放在n中。 (2)求出m被n除后的余数r。 (3)若余数为0则执行步骤(7);否则执行步骤(4)。 (4)把除数作为新的被除数;把余数作为新的除数。 (5)求出新的余数r。 (6)重复步骤(3)到(5)。 (7)输出n,n即为最大公约数。 intmain() {intr,m,n; printf(“Enterm,n: ”); scanf(“%d%d”,__________); printf(“m=%dn=%d\n”,m,n); if(m __________; r=__________; while________ {m=__________;n=____________;r=______________;} printf(“H.C.F=%d\n,n); return0; } 五、程序设计题(可以自己研究)得分: 分 1、在歌手大奖赛中有10名评委打分,分数采用百分制,歌手的最后得分是: 从10位评委的评分中,去掉一个最高分去掉一个最低分,统计其总分,并除以8,试编程计算一个歌手的最后得分。 2、设有一个3位数,将它的百、十、个位3个单一数,各自求立方,然后加起来,正好等于这个3位数。 如: 153=13+53+33.。 写一个函数,找出所有满足条件的数。 3、现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0 选择尽量少的喷水装置,把整个草坪的全部湿润。 输入: 第一行m表示有m组测试数据 一组测试数据的第一行有一个整数数n,n表示共有n个喷水装置,随后的一行,有n个实数ri,ri表示该喷水装置能覆盖的圆的半径。 输出: 输出所用装置的个数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言