全国高校计算机等级考试(广西考区)二级C语言试题卷与答案2007年6月 下载本文

内容发布更新时间 : 2024/5/18 8:34:27星期一 下面是文章的全部内容请认真阅读。

全国高校计算机等级考试(广西考区)二级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)