预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

C语言程序设计期末试题C一、选择题:(20分,每题2分) 1.以下不正确的C语言标识符是()。 A.ABCB.abcC.a_bcD.ab.c 2.C程序是由构成的。 A.主程序与子程序 B.主函数与若干子函数 C.一个主函数与一个其它函数 D.主函数与子函数 3.以下说法中正确的是:。 A.在C语言中,实参与其对应的形参各占独立的存储单元; B.在C语言中,实参与其对应的形参共占同一个存储单元; C.在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元; D.在C语言中,形参是虚拟的,不占存储单元。 4.设n=3;则n++的结果是()。 A.2B.3C.4D.5 5.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是()。 A.0B.1C.2D.3 6.凡是函数中未指定存储类别的局部变量其隐含的存储类别是()。 A.自动(auto)B.静态(static)C.外部(extern)D.寄存器(register) 7.在while(x)语句中的x与下面条件表达式等价的是:。 A.x==0B.x==1C.x!=1D.x!=0 8.若有以下说明和语句: structworker { intno; char*name; }work,*p=&work; 则以下引用方法不正确的是()。 A.work.noB.(*p).noC.p->noD.work->no 9.以下对二维数组进行正确初始化的是()。 A.inta[2][3]={{1,2},{3,4},{5,6}}; B.inta[][3]={1,2,3,4,5,6}; C.inta[2][]={1,2,3,4,5,6}; D.inta[2][]={{1,2},{3,4}}; 10.二维数组a有m列,则在a[i][j]之前的元素个数为:。 A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+1 二、给出下列程序的运行结果:(20分,前四题每题3分,后两题每题4分) 1.#include<stdio.h> main() { inti=16,j,x=6; j=i+++1; x*=i=j; printf(“%d,%d\n”,j,x); } 运行结果是: 2.#include<stdio.h> #include<math.h> main() { inta=1,b=4,c=2; floatx=10.5,y=4.0,z; z=(a+b)/c+sqrt((double)y)*1.2/c+x; printf(“%f\n”,z); } 运行结果是: 3.#include<stdio.h> main() { inta,b,c,d; a=c=0; b=1; d=20; if(a)d=d-10; elseif(!b) if(!c)d=25; elsed=15; printf(“d=%d\n”,d); } 运行结果: 4.main() { inti=10; switch(i){ case9:i+=1; case10:i+=1; case11:i+=1; default:i+=1; } printf(“%d”,i); } 运行结果: 5.#include<stdio.h> main() { inta[]={1,2,3,4},i,j,s=0; j=1; for(i=3;i>=0;i--) { s=s+a[i]*j; j=j*10; } printf("s=%d\n",s); } 运行结果: 6.func(intx) {x=20;} main() { intx=10; func(x); printf(“%d”,x); } 运行结果: 三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(20分,每空2分) 1.已知能被4整除而不能被100整除的或者能被400整除的年份是润年,则判断某一年是否是润年的程序如下: main() { intyear,leap; scanf(“%d”,&year); if() leap=1; elseleap=0; if()printf(“是润年”); elseprintf(“不是润年”); } 2.将100至200间不能被3整除的数输出: main() { intn; for(n=100;n<=200;n++) { if(n%3==0); printf(“%d”,n); } } 3.判断m是否是素数 #include<math.h> main() { intm,i,k; scanf(“%d”,&m);k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0); if(i>=k+1)printf(“%disaprimenumber\n”,m); elseprintf(“%disn