admin 管理员组文章数量: 887021
2024年2月24日发(作者:iframe展示文件标题)
广东海洋大学
C语言程序设计试题库(第1套)
一、单项选择题(每小题2分,共50分)
1、一个C程序的执行是从___A____。
A、本程序的main函数开始,到main函数结束
B、本程序的main函数开始,到本程序文件的最后一个函数结束
C、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
D、本程序文件的第一个函数开始,到本程序main函数结束
2、C语言程序的基本单位是___C_____。
A、程序行 B、语句
C、函数 D、字符
3、请选出可用作C语言用户标识符的一组标识符____B____。
A、void B、a3_b3 C、For D、2a
define _123 -abc DO
WORD IF ase sizeof
4、假定x和y为double型,则表达式(x=2,y=x+5/2)的值是___C___ 。
A、4.500000 B、4
C、4.000000 D、2.000000
5、下列可以正确表示字符型常量的是__D____。
A、297 B、"a"
C、"n" D、't'
6、在C语言中,要求运算数必须是整型的运算符是_____D_。
A、/ B、++
C、*= D、%
7、C语言中,复合语句的构成是将一系列语句置于___C___。
A、begin与end之间
B、方框号“[ ]”之间
第 1 页 共 12 页
C、花括号“{ }”之间
D、圆括号“( )”之间
8、有如下程序段,对应正确的数据输入是____A_。
float x,y;
scanf(”%f%f”, &x,&y);
printf(”a=%f,b=%f”, x,y);
A、2.04<回车> B、2.04,5.67<回车>
5.67<回车>
C、A=2.04,B=5.67<回车> D、2.045.67<回车>
9、以下程序段的输出结果是____D__。
int a=5678;
printf(”%2dn”, a);
A、提示出错、无结果 B、56
C、78 D、5678
10、已知:char ch='A';则下列表达式的值是__B____。
ch = (ch>='A'&&ch<='Z') ? (ch+32) : ch;
A、A B、a C、Z D、z
11、下列描述,正确的是__B____ 。
A、表达式3.91%5是合法的
B、用b=89作为while循环的条件是合法的
C、逗号表达式是没有值和类型的
D、字符型变量和int型变量的操作完全不同
12、阅读以下程序:
main()
{int x;
scanf("%d",&x);
if(x--<5) printf("%d",x);
else printf("%d",x++);
}
第 2 页 共 12 页
程序运行后,如果从键盘上输人5,则输出结果是___B___ 。
A、3 B、 4 C、 5 D、 6
13、下列程序的运行结果是___C___。
#include ”stdio.h”
main()
{ int k;
k=3;
switch(k)
{ case 1: printf(”%dn”, k++);
case 2: printf(”%dn”, k++);
case 3: printf(”%dn”, k++);
case 4: printf(”%dn”, k++);
break;
default: printf(”Full!n”);
}
}
A、3 B、4 C、3 D、4
4 4
14、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、
m=2、n=1,则逻辑表达式(m==a
A、0 B、 1 C、2 D、 3
15、设x、y和temp均为long int型变量,则以下语句:
{temp=x; x=y; y=temp;} 的功能是____D__。
A、把x和y按从大到小排列
B、把x和y按从小到大排列
C、无确定结果
D、交换变量x和变量y的值
16、以下程序的输出结果是 ___A___ 。
main()
第 3 页 共 12 页
{int a, b;
for(a=1, b=1; a<=100; a++)
{if(b>=10) break;
if (b%3==1)
{ b+=3; continue; }
}
printf("%dn",a);
}
A、4 B、6 C、5 D、执行以下程序后输出的结果是____D___。
main()
{ int y=10;
do {y--;}
while(--y);
printf("%dn",y--);}
A、-1 B、1 C、8
、执行以下程序后输出的结果是___B____。
main()
{int i, j, w=0;
for(i=4; i; i--)
for(j=1;j<=2;j++)
w=w+i*j; w=i*j;
printf("%dn",w);
}
A、4 B、0 C、1 D、以下程序运行后,输出结果是___C___。
main()
{
int n[5]={3,3,3},i,k=2;
第 4 页 共 12 页
、101
D、0
、30
17
1819
for(i=0;i printf("%dn",n[k]); } A、4 B、9 C、3 D、不确定的值 20、以下程序的输出结果是 __A____ 。 f ( int a) {int b=0; static int c = 3; b++; c++; return(a+b+c); } main() {int a = 2, i; for(i=0;i<3;i++) printf("%dn",f(a)); } A、 7 B、 7 C、 7 D 8 9 10 7 9 11 13 7 21、设C程序如下: #define ABC(x) x*x #include"stdio.h" main() {int a=3,b; b=ABC(a+1); printf("b=%d", b); } 上述程序运行输出的结果是___D___ 。 A、b=4 B、b=a+1 C、b=16 D、b=7 22、以下程序的输出结果是__B___。 第 5 页 共 12 页 、 7 main() {int i, a[10]; for(i=9;i>=0;i--) a[i]=10-i; printf("%d %d %d",a[1],a[6],a[9]); } A、1 6 9 B、9 4 1 C、9 6 1 D、3 5 7 23、若定义:float x=3.14159,*p=&x; 则printf("%fn",*p++);的输出结果为___C___ 。 A、无确定值 B、x的地址 C、3.14159 D、4.14159 24、以下程序的输出结果是___B____ main() {char b[]="Language"; char *p=b; printf("%c ",*(b+2)); p=p+7; printf("%cn",*p++); } A、2 7 B、n e C、a g D25、下列程序的输出结果是___A____。 #include "stdio.h" main() { int a[]={1,2,3,4,5,6,7,8,9,0}, i, s, *p; p=a;s=0; for(i=0;i<=9;i++) s+=*p++; printf("%dn", s); 第 6 页 共 12 页 、n u } A、45 B、44 C、0 D、9 二、判断题(每小题1分,共10分) 1.语句int *point;中的point是指针变量名。( T ) 2.主函数和其它函数之间可以相互调用。( F ) 3.puts( )和gets( )函数只能输入或输出一个字符。( F ) 4. 可以对字符型数组元素进行整体输入、输出。( T ) 5.do-while语句构成的循环不能用其他语句构成的循环来代替。( F ) 6.在一个函数内的复合语句中定义的变量可以在本函数范围内有效。( F) 7.函数必须有返回值,否则不能使用函数。( F ) 8.for(;;);语句相当于while(1);语句。( T ) 9.C程序的执行总是从第一个定义的函数开始。( F ) 10.C语言中的关键字专门用作语言的特定成分,而不能作为一般标识符使用。( T) 三、程序填空题(每空2分,共10分) 1、下面程序完成判断某一个数m是否为素数,如果是则输出"m is a prime!",否则就输出"m is not a prime!",请选择填空。 main() { int i, m; scanf("m=%d", &m); for(i=2; i { if(m%i==0) { printf("%d is not a prime!n", m); (1) } else (2) } if(i==m) printf("%d is a prime!n", m); } 第 7 页 共 12 页 (1)、 A、break B、continue C、break; D、continue; (2)、 A、break B、break; C、continue D、continue; 2、以下程序的功能是:求出用数字0至9组成没有重复数字且是13倍数的三位数的个数,请选择填空。 #include void main() { int i, j, k, w, count = 0; for( (3) ; i<=9; i++) for(j=0;j<=9; j++) for(k=0; k<=9;k++) if( (4) ) { w = i*100+j*10+k; if( (5) ) count++; } printf("n count=%dn", count); } (3)、 A、i=0 B、i=1 C、i=9 D、i=-1 (4)、 A、i!=j B、i!=j ||j!=k C、i!=j&& j!=k D、i!=j&& j!=k && k!=i (5)、 A、w%13=0 B、w/13=0 C、w%13==0 D、w/13==0 四、编程题(第1小题12分,第2小题18分,共30分) 1、从键盘输入一个4位数的正整数n,将该数反序输出。例如,若输入的是 1357,则输出的是7531。 第 8 页 共 12 页 要求:1)利用VC++编译系统进行调试、运行 2)对输入的正整数n的合法性进行检查 3)将源程序以“编程题1.c”为文件名保存在网络盘(K:盘)的考生文件夹上,用其它文件名保存或保存在其他地方均不能得分 2、已知一组字符串a[27]="jjyyzzabcdefgJJYYZZABCDEFG"; 请编一程序,将其 中的小写字母换成其前一个字母,即z换成y,y换成x,...,b换成a,若是a则换成z。然后对数组a[27]从小到大排序,并输出排序后的字符串。 要求:1)利用VC++编译系统进行调试、运行 2)先输出原字符串(即未做任何改变的字符串),最后输出排序后 的字符串 3)将源程序以“编程题2.c”为文件名保存在网络盘(K:盘)的考生文件夹上,用其它文件名保存或保存在其他地方均不能得分 第 9 页 共 12 页 C语言程序设计试题库(第1套) 答案及评分标准 一、单项选择题(每小题2分,共50分) 第 1 ~ 5 题:ACBCD 第6 ~ 10题:DCADB 第11~15题:BBCAD 第16~20题:ADBCA 第21~25题:DBCBA 二、判断题(每小题1分,共10分) 第 1 ~ 5 题: 第6 ~ 10题: 三、程序填空题(每空2分,共10分) 第 1 ~ 5 空:CDBDC 四、编程题(第1小题12分,第2小题18分,共30分) 1、从键盘输入一个4位数的正整数n,将该数反序输出。例如,若输入的是 1357,则输出的是7531。 要求:1)利用VC++编译系统进行调试、运行 2)对输入的正整数n的合法性进行检查 3)将源程序以“编程题1.c”为文件名保存在网络盘(K:盘)的考生文件夹上,用其它文件名保存或保存在其他地方均不能得分 评分标准: 1. 按题目要求定义变量 (1分) 2. 数据输入语句正确 (动态输入,即使用scanf()函数) (2分) 第 10 页 共 12 页 3. 有对输入数据进行合法性检查的语句 (2分) 4. 正确求出各位数字(4分) 5. 按题目要求输出最后结果 (2分) 6. 无语法错误(1分) 源程序: #include ”stdio.h” main() { int n, a, b, c, d; printf(" Please input a integer number(>=1000 and <10000):n"); lab: scanf(“%d”, &n); if(n<999 || n>=10000) {printf("You input the integer is error! Please input again:n"); goto lab;} a=n/1000; b=n%1000/100; c=n%100/10; d=n%10; printf("n The result is: %d%d%d%dn", d, c, b, a); } 2、已知一组字符串a[27]="jjyyzzabcdefgJJYYZZABCDEFG"; 请编一程序,将其 中的小写字母换成其前一个字母,即z换成y,y换成x,...,b换成a,若是a则换成z。然后对数组a[27]从小到大排序,并输出排序后的字符串。 要求:1)利用VC++编译系统进行调试、运行 2)先输出原字符串(即未做任何改变的字符串),最后输出排序后 的字符串 3)将源程序以“编程题2.c”为文件名保存在网络盘(K:盘)的考生文件夹上,用其它文件名保存或保存在其他地方均不能得分 第 11 页 共 12 页 评分标准: 1. 按题目要求正确定义变量及字符数组 (2分) 2. 能正确对字符数组赋初值 (2分) 3. 能将数组中的小写字母换成其前一个字母(使用循环及if-else语句)(5分) 4. 按要求正确地对新数组进行排序(算法正确、有双层循环及分支结构)(5分) 5. 按要求输出最后结果 (3分) 6. 无语法错误(1分) 源程序: #include ”stdio.h” main() { int i, j; char ch,a[27]= "jjyyzzabcdefgJJYYZZABCDEFG"; for(i=0; i<26; i++) if(a[i]>'a' && a[i]<='z') a[i]=a[i]-1; else if(a[i]=='a') a[i]='z'; for(i=0;i<25;i++) for(j=i+1;j<26;j++) if(a[i]>a[j]) {ch=a[i]; a[i]=a[j]; a[j]=ch;} printf(“n The sorted new array is:n”); printf("n %s ",a); } 第 12 页 共 12 页
版权声明:本文标题:C语言测试题(含答案及评分标准)[1] 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1708775966h531145.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论