C语言程序设计试题及答案

更新时间:2023-12-20 18:09:01 阅读量: 教育文库 文档下载

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

《C语言程序设计》( 卷)考核班级

学生数 印数 考核方式 闭卷 考核时间 120 分钟 (本试卷包括第一卷和第二卷,答卷时间总共120分钟) 第一卷

第一部分:基础知识(20项,共40分) 1.一个C语言程序是由( ) 组成的。

A.主程序 B.子程序 C.函数 D.过程

2.转换说明符%x的输出形式是( )。

A.十进制 B.八进制 C.十六进制 D.二进制

3.若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;++a,++b)

printf ( “ ------------“) ;的正确说法是( ) 。 A.循环体只执行一次 B.死循环 C.循环体一次也不执行 D.输出-----------

4.若x、y、z均为int 型变量,则执行下列语句后的z值为 ( )。

x=1; y=2; z=3; z=(x>y)?z :y ; z = (z

5.下面标识符中,合法的用户标识符为( )。

A.P#Ad B.12a C.char D._int 6. ‘A’ + 3 的结果是( )。

A.’A’ B.’D’的ASCⅡ码 C.65 D.3

7.语句char str[20];说明str是一个字符串,最多能表示 ( ) 。

A.20个字符 B.19个字符 C.18个字符 D.21个字符

8.将int 型变量n转换成float型变量的方法是 ( )。 A.float n B.(float)n C.float(n) D.21个字符

9.以下不正确的描述是 ( )。

A. 使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成

B. while循环是先判断表达式后执行循环体语句 C. do-while和for循环均是先执行循环体语句,后判断表达式

D. for、while、do-while循环中的循环体均可以由空语句构成

10.在循环中使用break 语句的功能是( )。 A. 使程序的执行跳出break所在的那一重循环

B. 使程序执行结束

C. 跳出包含此break语句的所有循环 D. 终止本次循环,继续下次循环

11.下面是一个初始化指针的语句:int *px = &a;其中指针变量的名字应该是( )。

A.*pz B.a C.px D.&a 12.若指针 px为空指针,则 ( )。 A.px指向不定 B.px的值为零 C.px的目标为零 D.px的地址为零

13.对于语句int *px[10],以下说法正确的是( ) 。 A. px是一个指针,指向一个数组,数组的元素是整数型。 B. px是一个数组,其数组的每一个元素是指向整数的指针。 C. A和B均错,但它是C语言的正确语句。 D. C语言不允许这样的语句。

14.具有相同基类型的指针变量P和数组变量Y,下列写法中不合法的是 ( ) 。

A.P = Y B.*P = Y[i] C.P + &Y[i] D.P = &Y 15

static

int

a[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p,则表达式 *(p[0]+1)+**(q+2)的值是( )。

A.5 B.4 C.6 D.7

16.已知for(;n>=1;n--),下列语句实现将S2所指字符数组中前n个字符复制到S1所指字符数组中,其中代码不正确的是( )。 A

B.S1[n-1]=S2[n-1]

C.*(S1+n-1)=*(S2+n-1) D.*(++S1)=*(++S2)

17.调用函数的实参与被调用函数的形参应该有如下关系( ) 。

A.只要求实参和形参个数相等 B.只要求形参和实参顺序相同

C.只要求实参和形参数据类型相同 D.上述三点均需具备

18.联合体成员的数据类型 ( )。

A.相同 B.可以不同也可以相同 C.长度一样 D.是结构体变量 19.由系统分配和控制的标准输出文件为( ) 。 A.键盘 B.磁盘 C.打印机 D.显示器

20.C语言标准库函数fread(fd,buffer,n)的功能是( )。 A.从文件fd中读取长度不超过n个字节的数据送入buffer指向的内存区域

*S1++=*S2++

B.从文件fd中读取长度不超过n-1个字节的数据送入buffer指向的内存区域

C.从文件fd中读取长度不超过n个字符送入buffer指向的内存区域

D.从文件fd中读取长度不超过n-1个字符送入buffer指向的内存区域

第二部分:简单程序(12项,共30分) 21.下列程序 main() { int x,y,z; x=y=2;z=3; y=z++-1;

printf(“%d\\t%d\\t”,x,y); y=++x-1;

printf(“%d \\t%d\\n”,x,y); y=z---1;

printf(“%d\\t%d\\t”,z,y); y=--z-1;

printf(“%d\\t%d\\n”,z,y); }

运行后输出的数据为???_______。

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

2 4 1 3 2 4 2 2 3 3 2 1 1 3 1 2

22.下列程序 main()

{ int i,j;char *a,c; a=”computer”; printf(“%s”,a); for(i=0,j=7;i

printf(“->%s\\n”,a); c=a[j-1,i=2+j];

printf(“a[%d]=%c\\n”,i,c); }

运行后输出的数据为___ .

A. computer->computer B. computer->retupmoc a[3]=u a[5]=m

C. computer->retupmoc D. computer->retupmoc

a[4]=p a[2]=t 23.下列程序 int sum(int n) { int p=1,s=0,i;

for(i=1;i<=n;i++) s+=(p*=i); return s; } main()

{ printf(“sum(5)=%d\\n”,sum(5)); }

运行后输出的数据为_ ___ A.sum(5)=151

B.sum(5)=152

Dsum(5)=155 24.下列程序 main()

{ static int a[]={5,6,7,3,2,9}; int s1,s2,i,*ptr; s1=s2=0; ptr=&a[0];

for(i=0;i<5;i+2=2) { s1+=*(ptr+i); s2+=*(ptr+i+1);

C.sum(5)=153

}

printf(“s1=%d,s2=%d\\n”,s1,s2); }

运行后输出的数据为_____

A.s1=18,s2=14 B.s1=14,s2=32 D.s1=15,s2=19 25.下列程序 int c=1; main()

{static int a=5;int b=6;

printf(“a=%d b=%d c=%d\\n”,a,b,c); func();

printf(“a=%d,b=%d,c=%d\\n”,a,b,c); func(); } func()

{ static int a=4;int b=10; a+=2; c+=10; b+=c;

printf((“a=%d,b=%d,c=%d\\n”,a,b,c); }

C.s1=14,s2=18 运行后输出的数据为_ ___.

A. a=5 b=6 c=1 B. a=5 b=6 c=1 a=6 b=21 c=11 a=7 b=17 c=11 a=5 b=6 c=11 a=5 b=6 c=11 a=8 b=31 c=21 a=9 b=17 c=21 C. a=5 b=6 c=1 D. a=5 b=6 c=1 a=6 b=21 c=11 a=7 b=17 c=11 a=6 b=21 c=11 a=7 b=17 c=11 a=8 b=31 c=21 a=9 b=38 c=21 26.已知 struct student {char ﹡name; int student_n; char grade; };

struct student temp,*p=&temp; temp.name=”chou”; 则下面不正确的是_______。

表达式 值 A.p→name chou B.(*p)→name+2 h C.*p→name+2 e

D.*(p→name+2) o 27.下列程序 #define MAX 10 main()

{ int i,sum,a[ ]={1,2,3,4,5,6,7,8,9,10}; sum=1; for(i=0;i

printf(“SUM=%d”,sum); }

程序运行结果是:

A.SUM=55 B.SUM=-54 C.SUM=-55 D.SUM=54 28.下列程序

void inv(int*x,int n) {int *p,t,*i,*j,m=(n-1)/2; i=x; j=x+n-1; p=x+m;

for(;i

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

Top