内容发布更新时间 : 2024/12/22 17:33:38星期一 下面是文章的全部内容请认真阅读。
全国高校计算机等级考试(广西考区)二级C语言试题卷
2007年6月30日 闭卷考试 考试时间:120分钟
第一卷
本卷共70分,其中第1~26题每题2分,第27~32题每题3分
第一部分:基础知识
1 一个C语言程序是从 开始执行的。
A 程序中的第一个函数 B 名为main的函数 C 包含文件(头文件)的第一个函数 D 程序中的第一个语句 2 下列选项中,哪一个是C语言中合法的常量 。
A \ABCdef\ B xy1 C 4.35e D 3/8 3 下列字符序列中,可用作C语言标识符的是 。
A n.8 B x,y C m>=n D t_5 4 以下正确的实型变量为 。
A 1:390 B E3 C 1.23e4 D 3e2.2 5 下列语句中正确的是 。
A char a,b,c; B int x=y=10;
C float x;y; D char str1 str2 str3; 6 在C语言中,变量的缺省存储类型是 。
A static B extern C register D auto 7 设x为int型变量,y为float型变量,则下面语句中错误的是 。
A y=(float)x; B x=y%5; C x=y+3.14; D x=(int)y; 8 设x、y、z都是int型变量,且x=4,y=5,z=8;则(z=x+y,z*2)表达式的值为 。 A 16 B 34 C 18 D 20 9 以下程序:
main()
{ int x=6,y=10,z=15,m;
z++; m=x*y+z; printf(\%d\\n\,m); }
执行后输出结果是 。
A 75 B 76 C 31 D 32
10 已知p、pt为指针变量,a为数组名,i为整型变量,下列赋值语句中不正确的是 。
A p=&i; B p=pt; C p=&a[i]; D p=20; 11 下列说法中不正确的是 。
A 主函数main中定义的变量在整个文件或程序中有效
B 不同函数中,可以使用相同名字的变量 C 形式参数是局部变量
D 在一个函数内部,可以在复合语句内定义变量,这些变量只在本复合语句内有效 12 执行下面两个语句后,输出的结果是 。
char c1=97,c2=98;
printf(\%d %c\\n\,c1,c2);
A a b B 97 98 C 97 b D a 98
13 对于C语言中的函数,下列叙述中正确的是 。
A函数的定义和调用均不能嵌套 B 函数的定义和调用均可嵌套
C 函数的定义不能嵌套,但函数的调用可以嵌套 D 函数的定义可以嵌套,但函数的调用不能嵌套
14 对于下面的for循环语句,共执行printf语句 。
for(x=0;x<3;x++) { for(y=1;y<3;y++) printf(\-----\); } A 6次 B 9次 C 12次 D 16次 15 以下程序的输出结果是 。
main()
{ int x=4,y=7;
x-=y;y+=x;
printf(\%d %d\\n\,x,y); }
A 4 7 B -3 -3 C -3 11 D -3 4 16 变量的指针,其含义是指该变量的 。
A 值 B 名 C 地址 D 17 在pc机上使用C语言,若有如下定义:
struct data { int i; char ch; float f; }b; 则结构体变量b占用内存的字节数是 。
A 7 B 4 C 1 D 2 18 对于]位运算,若x=2,y=3,则x&y的结果是 。
A 7 B 2 C 4 D 119 以下定义不正确的有 。
A #define PI 3.14159 B #define PI 3.14159; C #define M 100 D #define m 100 20 以下程序:
main()
{ char st[30]=\student\;
printf(\%s\,st); }
执行后的输出结果是 。
A 7 B 30 C student D STUDENT
第二部分:简单程序 21 以下程序:
main()
{ int x,y,z;
x=5,y=8,z=25;
if(z>x+y) z+=x*y; else z-=x*y; printf(\%d\\n\,z); }
一个标志 执行后输出结果是 。
A 65 B 15 C 40 D 25 22 以下程序:
main()
{ static char m[]=\C program\;
char *ptr; int i; ptr=m;
for(i=0;*ptr!='\\0';ptr++,i++) printf(\%c\,*ptr); printf(\ %d\,i); }
执行后输出结果是 。
A program 9 B program 7 C C program 8 D C program 9 23 以下程序:
int fun(int b[],int n)
{ int i,s=1;
for(i=0;i return s; } main() { int i,a[8]={2,7,10,5,6,4,3,9}; int m; m=fun(a,8); printf(\m=%d\,m); } 执行后输出结果是 。 A m=21 B m=360 C m=25 D m=1260 24 以下程序: main() { char str1[30]=\Hello\,str2[30]=\I am a student!\; int x; strcpy(str1,str2); x=strlen(str1); printf(\%d\\n\,x); } 执行后输出结果是 。 A 15 B 20 C 5 D 30 25 以下程序: main() { int k,sum=0; for(k=1;k<9;k+=2) sum+=k; printf(\%d\\n\,sum); } 执行后输出结果是 。 A 9 B 16 C 20 D 25 26 以下程序: main() { static int a[10]={4,6,3,9,12,5,11,8,7,4}; int m=a[0]; int *p; for(p=a;pm) m=*p; printf(\%d\\n\,m); } 执行后输出结果是 。 A 64 B 3 C 12 D 4 27 下列程序从键盘输入65后,程序的运行结果是 。 main() { int m; scanf(\%d\,&m); switch(m/10) { case 10: case 9:printf(\优秀\);break; case 8:printf(\良好\);break; case 7:printf(\中等\);break; case 6:printf(\及格\);break; default: printf(\不及格\); } } A 不及格 B 优秀 C 中等 D28 以下程序: inverse(char str[]) { char t; int i,j; for(i=0,j=strlen(str)-1;i main() { int str[100]; scanf(\%s\,str); inverse(str); printf(\%s\,str); } 如果输入anple,输出结果为 。 A anple B elpna C Anple D Elpna 29 以下程序: int y=10; fun(int x) { int y=5; y+=x; printf(\%d\,y); } main() 及格 { int i=2; fun(i); y+=i; printf(\ %d\,y); } 执行后输出结果是 。 A 7 12 B 12 12 C 7 7 D 12 7 30 以下程序: typedef union { long a; int b[5]; char c[4]; }EXAM; main() { printf(\%d\,sizeof(EXAM)); } 执行后输出结果是 。 A 18 B 4 C 10 D 5 31 以下是关于位运算的程序: main() { int x=5,y=3,z,m; z=x|y; m=x<<1; printf(\%d %d\\n\,z,m); } 执行后输出结果是 。 A 5 2 B 7 2 C 5 10 D 7 10 32 以下程序: int f(int *x,int *y) { int t; t=*x; *x=*y; *y=t; } main() { int a=3,b=8,*p,*q; p=&a; q=&b; f(p,q); printf(\%d,%d\\n\,*p,*q); } 执行后输出结果是 。 A 3,8 B 8,3 C 3,3 D 8,8 第二卷 说明:⑴ 第二卷均为填空题,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、 语句,以构成一个正确的C语言程序。 ⑵ 每空栏3分,10个空栏共30分。 试题一 以下程序将两个数从小到大输出。 main() { float a,b, 1 ; scanf(\ 2 \,&a,&b); if(a>b) { temp=a; 3 ; b=temp; } printf(\%f,%f\,a,b); } 试题二 以下程序是从键盘输入一个字符,如果它是一个大写字母,则把它变成小写字母,如果它是一个小写字母,则把它变成大写字母;其他字符不变。 main() { char tch; scanf(\%c\, 4 ); if( 5 ) tch=tch+32; else if(tch>='a' && tch<='z') 6 ; printf(\%c\,tch); } 试题三 以下程序通过函数求给定数据序列的平均值。 float averfun(int array[],int n) { int i, 7 ; for(i=0;i } main() { int m[8]={4,9,8,3,2,6,5,12}; float average; average= 10 ; printf(\average=%f\\n\,average); } 广西区计算机二级2007年6月答案 一:基础知识 1-5 BADCA 6-10 DBCBD 11-15 ACCBD 16-20 CABBC 二:简单程序 21-25 ADBAB 26-30 CDBAC 31-32 DB 第二卷 1. temp 2. %f,%f 3. a=b 4. &tch 5. tch>=’A’&&tch<=’Z’ 6. tch=tch-32 7. sum=0 8. array[i] 9. (float) sum/n 10. averfun(m,8)