C语言试卷合集
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、是非判断题(每小题2分,共14分)
()1.在C语言中,函数可以递归调用或递归定义。
()2. C程序的执行总是从程序第一句开始。
()3.静态外部变量只限于本文件中使用。
()4.一个数组的各个数组元素可属于不同的数据类型。
()5.break语句可用于程序的任何地方,以终止程序的执行。
()6.语句“if(a>b) max=a;else max=b;”与“max=(a>b)?a:b;”
的作用相同。
()7.若有一个多维数组a,则*(a+i)与a[i]等价。
二、填空题(每小空1分,共10分)
1.C语言程序的三种基本结构
是、、。
2.C语言中没有逻辑型数据,在给出逻辑运算结果时,以代表“真”,以代表“假”。
3.在C语言的运算符中,优先级别最低的是。
4.C语言中可以用来实现循环的四种语句
是、、、
。
三、单项选择题(每小题2分,共28分)
1._____是C语言合法的常量。
(A).45 (B)078 (C)25.6e3.4 (D)‘xy’2.设x=3,y=2,则表达式x*=y+8的值为_____。
(A)3 (B)2 (C)30 (D)10 3.设x=2.5,a=7,y=4.7,算术表达式x+a%3*(int)(x+y)%2/4的值为_____。
(A)2.5 (B)7 (C)4.7 (D)2.75 4.下列变量说明语句中,正确的是。
(A)char:a b c;(B)char a;b;c;(C)int x;z;(D)int x,z;
5.执行下面两个语句后,输出的结果为_____。
char c1=97,c2=98;
printf(“%d %c”,c1,c2);
(A)97 98 (B)97 b (C)a 98 (D)a b 6.执行下面语句后的结果为_____。
y=10;x=y++;
(A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11 (D)x=11,y=10
7.以下程序运行后,输出的结果为_____。
main( )
{ char a=15;printf(“%d,%o,%x”,a,a,a);}
(A)15,f,17 (B)15,15,f (C)17,f,15 (D)15,17,f 8.两个指针变量不可以______。
(A)相减(B)比较(C)相加(D)指向同一地址9.用scanf(“%d,%d”,&a,&b)输入数据时,下面输入法中正确的是。
(A)123,4 (B)123 4 (C)123;4 (D)123:4 10.下列程序段中,功能与其它程序段不同的是。
(A)for(i=1,p=1;i<=5;i++) p*=i;
(B)for(i=1;i<=5;) { p=1;p*=i;i++;}
(C)i=1;p=1;while(i<=5) { p*=i;i++;}
(D)i=1;p=1;do { p*=i;i++;} while(i<=5);
11.以下程序的运行结果为______。
main( )
{ int n;
for( n=1;n<=10;n++)
{ if( n%3==0) continue; printf(“%d”,n); }
}
(A)12457810 (B)369 (C)12 (D)12345678910 12.设x和y均为int型变量,则语句x+=y;y=x-y;x-=y;的功能是。
(A)把x和y按从大到小排列(B)把x和y按从小到大排列
(C)无确定结果(D)交换x和y中的值13.设有以下语句,则变量a 。
char a=‘\72’;
(A)包含3个字符(B)包含1个字符
(C)包含2个字符(D)说明不合法语法
14.以下函数调用语句中含有个实参。
func((e1,e2),(e3,e4,e5));
(A)2 (B)3 (C)5 (D)语法错误
四、阅读填空(每小空2分,共24分)
1. #define ___________ 30
main()
{ ____________________ ;
num=10;total=num*PRICE;
printf(“total=%d,num=%d\n”,______________);
}
2.以下函数的功能是:把两个整数指针所指的存储单元的内容进行交换。
exchange(int *x,int *y)
{ int t;
t=*y;*y=_______;*x=__________; }
3.对数组中的元素值进行从小到大的排序。
main()
{ int a[ ]={2,4,15,3,17,5,8,23,9,7,11,13},i,j,k;
for(k=0;k<12;k++)
for(i=k+1;i<12;i++)
if( a[i]______a[k] )
{ j=a[i]; a[i]=__________; ___________; }
for(i=0;i<12;i++)
printf(“%4d”,a[i]);
printf(“\n”);
}
4.下列程序计算1到100的奇数的累加和。
main()
{ int i,_______;
for(_____________________________) sum+=i;
printf(“sum=%d\n”,sum);
}
5.以下程序计算数的阶乘
main( )
{ int i,n; long np;
scanf(“%d”,&n);
np=_______;
for(i=2;i<=n;i++)
______________;
printf(“n=%d n! =%ld\n”,n,np);
}
五、写出下列程序的运行结果(每小题4分,共24分)
1. main( )
{ static char s1[20]=“My ”,s2[20]=“book!”,s3[]=“Your ”; strcpy(s2,“car!”);strcpy(s1,s3);
strcat(s1,s2);printf(“%s”,s1);
}
运行结果:
2. main( )
{ int grade;
scanf(“%c”,&grade);
switch(grade)
{ case ‘A’:printf(“>=85.”);
case ‘B’:printf(“>=60.”);
case ‘C’:printf(“<60.”);
default: printf(“error.”);
}
}
若从键盘输入B,程序的运行结果为: