C语言程序设计-大学模拟题(附答案) 下载本文

《C语言程序设计》模拟题

一、单项选择题

1.下面程序运行的结果是 void ss(char *s,char t) {

while(*s)

{

if(*s= =t) *s=t-‘a’+’A’; s++; } }

void main() {

char str1[100]=”abcddfefdbd”,c=’d’; ss(str1,c);

printf(\}

A.ABCDDFEFDBD B.abcDDfefDbD C.abcAAfefAbA D.Abcddfefdbd [答案]:B

2.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 A.地址传递 B.单向值传递

C.由实参传给形参,再由形参传给实参 D.由用户指定传递方式 [答案]:B

3.C语言中的标示符只能由字母,数字和下划线三种字符组成,且第一个字符( A.必须是字母 B.必须是下划线

C.必须是字母或下划线

D.可以是字母或数字或下划线中的任意一种 [答案]:C

4.不能把字符串:\赋给数组b的语句是 A.char b[10]={’g’,’o’,’o’,’d’,’!’}; B.char b[10];b=\

C.char b[10];strcpy(b, \D.char b[10]=\[答案]:B

) 5.对for(表达式1;;表达式3)可以理解为 A.for(表达式1;0;表达式3)

B.for(表达式1;表达式1;表达式3) C.for(表达式1;1;表达式3)

D.for(表达式1;表达式3;表达式3) [答案]:C

6.面向对象程序设计将数据与( ) 放在一起,作为一个相互依存不可分割的整体来处理. A.对数据的操作 B.信息

C. 数据隐藏 D.数据抽象 [答案]:A

7.若二维数组a有m列,则在a[i][j]前的元素个数为 A.j*m+i B.A. i*m+j C.i*m+j-i D.i*m+j+1 [答案]:B

8.若有int *p,a[10];p=a; ,则下列写法不正确的是 A.p=a+2 B.a++ C.*(a+1) D.p++ [答案]:B

9.若有以下定义:char s[10]=\则不能代表字符‘u’的表达式为 A.s[4] B.s+4 C.*(p+4) D.p+=4,*p; [答案]:B

10.设c1,c2均是char型变量,则下面不正确的函数调用为 A.scanf(\c1=ì2=%c”,&c1,&c2); B.getchar(); C.putchar(c2); D.putchar(c1,c2); [答案]:D

11.说明一个结构体变量时,系统分配给它的内存是 A.各成员所需内存量的总和

B.结构体中第一个成员所需内存量 C.成员中占内存量最大者所需的容量 D.结构体中最后一成员所需内存量 [答案]:A

12.下列数据中,合法的8进制常量是() . A.473 B.931 C.0abc D.10 [答案]:D

13.下面不正确的说法是:C语言规定 A.实参可以是常量,变量或表达式 B.形参可以是常量,变量或表达式

C.实参传递给形参时,要求实参必须有确定的值 D.形参应与其对应的实参类型可以不一致 [答案]:B

14.以下说法中正确的是

A.C语言程序总是从第一个定义的函数开始执行

B.在C语言程序中,要调用的函数必须在main函数中定义 C.C语言程序总是从main函数开始执行

D.C语言程序中的main函数必须放在程序的开始部分 [答案]:C

15.下面程序段的输出结果是 char c1=’6’,c2=’0’;

printf(”%c,%c,%d,%d\\n”,c1,c2,c1-c2,c1+c2); A.因输出格式不合法,输出出错信息 B.6,0,6,102 C.6,0,7,6 D.6,0,5,7 [答案]:B

16.下面的循环结构中,不是无限循环的是 A.for( i=1;;i++) B.i=1;while(i--)

C.i=1;do{printf(”%d”,i); i++;} while(--i); D.for(i=0;i;i++) [答案]:D

17.下面是对s的初始化,其中不正确的是 A.char s[5]={\

B.char s[5]={‘a’,’b’,’c’}; C.char s[5]=””;

D.char s[5]=”abced”; [答案]:D

18.下面说法中不正确的是

A.一个C源程序可有一个或多个函数组成 B.一个C源程序必须包含一个main函数 C.C程序的基本组成是函数

D.在C程序中,注释语句只能位于一条语句的后面 [答案]:D

19.下面四个选项当中,均是关键字的是( ) A.auto,enum,include

B.switch,typedef,continue C.signed,union,scanf D.if,struct,type [答案]:B

20.已知ch是字符型变量,下面不正确的赋值语句为 A.ch=’a+b’; B.ch=’\\0’; C.ch=’7’+’9’; D.ch=5+9; [答案]:A

21.以下正确的说法是

A.定义函数时,形参的类型说明可以放在函数体内 B.return后边的值不能为表达式

C.如果函数值的类型和返回值类型不一致,以函数值类型为准 D.如果形参与实参的类型不一致,以函数值类型为准 [答案]:C

22.C语言规定,在一个源程序中,main函数的位置 A.必须在最开始

B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后 [答案]:C

23.sizeof(double)是一个( )表达式. A.整型 B.双精度 C.不合法

D.函数调用 [答案]:A

24.不正确的定义语句是

A.double x[5]={2.0,4.0,6.0,8.0,10.0}; B.int y[5]={0,1,3,5,7,9};

C.char c1[]={’1’,’2’,’3’,’4’,’5’}; D.char c2[]={’\\x10’,’\\x0a’,’\\x08’}; [答案]:B

25.对if语句中表达式的类型,下面正确的说法是 A.必须是关系表达式

B.必须是关系表达式或逻辑表达式 C.可以是任意表达式

D.必须是关系表达式或算术表达式 [答案]:C

26.能正确表示a和b同时为正或同时为负的表达式是 A.(a>=0||b>=0)&&(a<0||b<0) B.(a>=0||b>=0)&&(a<0&&b<0) C.(a+b>0)&& (a+|b<0) D.a*b>0 [答案]:D

27.若使用以为数组名作函数实参,则下面说法中正确的是

A.在被调函数中,与该实参相对应的形参必须是同类型的数组名或指针变量 B.实参数组类型与形参数组类型可以不匹配 C.在被调函数中,不需要考虑形参数组的大小 D.实参数组名与形参数组名必须一致 [答案]:A

28.若有定义:int a[10],*p=a;,则p+5表示 A.元素a[5]的地址 B.元素a[5]的值 C.元素a[6]的地址 D.元素a[6]的值 [答案]:A

29.若有以下结构体定义,则正确的引用和定义是struct example { int x; int y;} v1; A.example.x=10

B.example v2; v2.x=10; C.struct v2; v2.x=10;

D.struct example v2={10,5}; [答案]:B