(3)广西区二级C语言考试题目2011年12月24日

更新时间:2024-05-08 14:15:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

全国高校计算机联合考试(广西考区)二级C语言试题卷

2011年12月24日闭卷考试考试时间:120分钟

考生注意:①本试题卷包括第一卷和第二卷,考试时间公120分钟。②第一卷全部为选择题,每题下都有四个备选答案,但只有一个是正确的或是最佳的答案。第一卷答案必须填涂在标准化答题卡上,标记在试题上的答案一律无效。每题只能填涂一个答案,多涂本题无效。考生本题无效。考生答第一卷的题目时务必使用2B铅笔按正确的填涂方法在答题卡上相应的题

号的答案的方格涂黑,如果改动答案,可用橡皮擦干净后在涂新答案。③第二卷均为填空题,在阅读和理解原题程序的基础上,在第二卷答题卡相应的空栏处填入适当的字符、语句。考

生答第二卷的题目时,要用钢笔或圆珠笔书写,用铅笔书写无效。在试题上直接答题者无效。④请考生在答题卡和第二卷答题卡上准确填涂或填写准考证号码。

第一卷

本卷共70分,其中第1~26题每题2分,第27~32题每题3分。

1. main()函数的特征是 D 。

A. 可独立运行的函数 B. 必不可少的函数 C. 最先执行的函数 D. 具有前述三种特征的函数 2. 下面标识符中,不合法的C语言标识符是 c 。

A. _char B. Char C. a#b D. a1b 3. 下面常量中,非法的C语言常量是 A 。

A.’tt’ B. 10L C.0.01 D.0x10

4. 设int 类型的数据长度为2个字节,则unsigned int 类型数据的取值范围是 C 。 A . -32768~32767 B. 0~255 C. 0~65535 D. -256~256 5. 若w、x、y均为int型变量,则执行下列语句后,y的值是 B 。 w=5;x=w++;y=x+w--;

1

A. 9 B. 11 C. 10 D. 12

6. 若之前有以下说明语句,则表达式c*x+z+y的结果类型是 A 。 char c; int x;float y,z;

A. double B. int C. char D. float 7. 若y为int型变量,则执行以下语句后,y的值是 C 。 y=8;y+=y-=y*y;

A.64 B. -56 C. -112 D. -48

8. 若m、a、b、c、d均为int型变量,则执行下列语句后m的值是 D 。 a=1;b=2;c=3;d=4; m=a>b?a:c

A.1 B.4 C.2 D.3 9.若a、b为int型变量,则执行下列语句后b的值。D a=15;b=15; do { b-=a; a++; }while(b--< 0);

A.0 B.-15 C.-16 D. -1 10. 若有以下语句,则下面选项 B 是正确的描述。 static char x[]=\;

static char y[]={'c','h','i','n','a'};

A. x数组与y数组长度相同 B. x数组长度大于y数组的长度 C. x数组长度小于y数组的长度 D. x数组和y数组的赋值是非法的 11.while(!x)中的条件表达式(!x)与下面条件 A 等价。

2

A.x==0 B.x==1 C.x==0||x==1 D.x!=0

12.若已定义m为int型变量,则 D 是对指针变量p的正确说明和初始化。 A.int p=&m; B.int *p=m; C.int *p=*m; D.int *p=&m; 13.若用数组名作为函数的实参,则实际上传给形参的是 B 。 A.数组的全部元素值 B.数组的首地址 C.数组的第一个元素值 D.数组所含元素数目

14.若有以下语句,在执行语句j=!c&&i++;则变量i和j的值分别是 D 。 char c='x';int i=1,j;

A.1,1 B.2,0 C.2,1 D.1,0

15.若之前有如下宏定义,则执行下列语句:z=4*(N+y(5));后的结果是 A 。 #define N 2

#define y(n) ((N+1)*n)

A.z的值为68 B.z的值为180 C.z的值为60 D.语句有错误 16.在C语言中函数返回值的类型缺省时,函数默认为 C 。 A.return 语句中的表达式类型 B.调用该函数的主函数类型 C.int类型 D.void类型

17.若有以下语句,则对数组元素正确引用的是 C 。 int a[]={2,4,6,8,10,12},*ptr;ptr=a; A.a B.a[6] C.*ptr D.ptr

18.有以下说明和p=&stud1;语句,对结构变量的成员age的正确引用的是 A 。 struct student { int age; int sex; }stud1,*p;

3

A. p->age B. student.age C. *p.age D. student.stud1.age 19.语句float *p();说明了 C 。 A. p是指向一维数组的指针变量

B.p是一函数名,该函数的返回值是指向float 类型数据的指针 C.p是指向函数的指针,该函数返回值的类型是float D. p是指向float 类型的数据的指针变量

20.若要用fopen函数建一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应该为 B 。

A.\ C. \ D. \

第二部分:简单程序

21.以下程序的输入结果是( C)。 main() { int n=4;

while(n>0) {n--;printf(\ }

A. 2 0 B. 3 2 1 C.3 2 1 0 D.2 1 0 22.下列程序运行后的输出结果是(D)。 main() { int i=1; while(i<=7)

if(++i%3!=2) continue; else printf(\

4

printf(\}

A.158 B.26 C.125 D.258

23.两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果分别是(A)。 main() { int x;

scanf(\

if(x>5)printf(\ else printf(\ }

A.7和4 B.6和3 C.7和3 D.6和4

24. 下列程序运行后的输出结果是(B)。 main()

{ int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++;b++; }

printf(\}

A. a=1,b=1 B. a=2,b=1 C.a=1,b=0

5

D.a=2,b=2

25. 下列程序运行后的输出结果是(B)。 main()

{ char a[10]={'1','2','3','4','5','6','7','8','9',0},*p; int i=8; p=a+i;

printf(\}

A.123456789 B.6789 C.'6' D.789

26. 下列程序运行后的输出结果是(C)。 main()

{ char s[]=\ while(*p)

{ if(*p>='A'&&*p<='Z')*p=*p -'A'+'a'; p++;} printf(\}

A. TODAY IS happy! B.TODAY IS HAPPY! C. today is happy! D.today is HAPPY!

27. 下列程序运行后的输出结果是(D)。 main()

{ char ch[3][4]={\ int i;

6

for(i=0;i<3;i++) printf(\}

A.123 B.1 C.123 D.123456789 4 456 7 789

28. 下列程序运行后的输出结果是(A)。 main()

{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++)

for(j=i;j<=i;j++) t=t+b[i][b[j][j]]; printf(\}

A.4 B.3 C.1 D.9

29. 下列程序运行后的输出结果是(B)。 int a,b; void fun() { a=100, b=200;} main()

{ int a=5,b=7; fun();

7

printf(\ }

A.100200 B.57 C.200100 D.75

30. 下列程序运行后的输出结果是(D)。 main() { int i,n=0; for(i=2;i<5;i++) { do

{ if(i%3) continue; n++; } while(!i); n++; }

printf(\}

A.n=5 B.n=2 C.n=3 D.n=4

31. 下列程序运行后的输出结果是(A)。void main() { int m=4,n=2,k; k=fun(m,n); printf(\ k=fun(m,n);

8

printf(\ }

fun(int x, int y) { static int n=3,i=2; i+=n+1; n=i+x+y; return(n); }

A.12 B.12 C.12 D.12 25 23 12 16

32. 下列程序运行后的输出结果是(C)。 void sort(int a[],int n) { int i,j,t;

for(i=0;i

if(a[i]

{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;

sort(aa,10);

for(i=0;i<10;i++) printf(\printf(\}

9

A.1,2,3,4,5,6,7,8,9,10, B.10,9,8,7,6,5,4,3,2,1, C. 9,2,7,4,5,6,3,8,1,10, D. 1,10,3,8,5,6,7,4,9,2,

第二卷

说明:(1)第二卷均为程序填空题,在阅读和理解程序的基础上,在第二卷答题卡上编号对应的栏目中填入适当的字符、语句,已构成一个正确的C语言程序。 (2)每空栏3分,10空栏共30分。

试题一:以下程序将两个数从小到大输出; main()

{ float a,b, 1temp ;

scanf(\%f%f 2 \if(a>b)

{ temp=a; a=b3 ; b=temp;}

printf(\}

10

试题二:以下程序是打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其

各位数字立方和等于该数本身。例如:153:是一个“水仙花数”,以为153=1*1*1+5*5*5+3*3*3.

main() { int i,j,k,n;

printf(\ for(n=100; n<1000 4 ;n++) { i=n/100;

j= (n-i*100)/105 ; k=n;

if( n=i*i*i+J*j*j+k*k*k 6 )printf(\ }

printf(\ }

试题三:以下程序通过写一函数求一个字符串的长度,在main函数中输入字符串,并输出其长度。 main() { int len;

Char str[100]7 ;

printf(\ scanf(\

len= length(str)8 ;

printf(\ }

length(char *p) { int n;

11

n=0;

while( *p!=’\\0’9 )

{ n++10 ;

p++; }

return n; }

参考答案

第一卷、选择题 1 2 3 D C A 11 12 13 A D B 21 22 23 C D A 31 32 A C 4 C 14 D 24 B 5 B 15 A 25 B 6 A 16 C 26 C 7 C 17 C 27 D 8 D 18 A 28 A 9 D 19 C 29 B 10 B 20 B 30 D

第二卷 填空题

1、temp 2、%f%f 3、a=b 4、n<1000 5、(n-i*100)/10 6、n==i*i*i+j*j*j+k*k*k 7、char str[100] 8、length(str) 9、*p!='\\0' 10、n++

12

本文来源:https://www.bwwdw.com/article/vowg.html

Top