《计算机语言C》题库带答案3(全面方便打印)

更新时间:2023-09-29 22:15:01 阅读量: 综合文库 文档下载

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

1

单选题:

1.给出以下定义: char x[ ]=\

char y[ ]={'a','b','c','d','e','f','g'}; 则正确的叙述为

A) 数组x和数组y等价B) 数组x和数组y的长度相同 C) 数组x的长度大于数组y的长度 A)4个字节

B)5个字节

D) 数组x的长度小于数组y的长度 C)6个字节

D)7个字节

2.设有数组定义: char array[ ]=\则数组 array所占的空间为 3.合法的数组定义是 A) int a[]=\ C) chars=\4.下列描述中不正确的是 A) 字符型数组中可以存放字符串

B) 可以对字符型数组进行整体输入、输出

C) 可以对整型数组进行整体输入、输出

D) 不能在赋值语句中通过赋值运算符\对字符型数组进行整体赋值 5.有以下程序,执行后输出结果是 main()

{ char s[]=\

printf(\}

A) 赋初值的字符串有错 char a[10],b;

scanf(“a=%s b=%c”,a,&b); 7.设有以下语句 typedef struct S

{ int g; char h;} T; 则下面叙述中正确的是()

A)可用S定义结构体变量 B)可以用T定义结构体变量 C)S是struct类型的变量 D)T是struct S类型的变量 8.若有以下说明和定义,以下叙述正确的是______。 typedef int *INTEGER INTEGER p,*q; A) p是int型变量

B) p是基类型为int的指针变量 D) 程序中可用INTEGER代替int类型名

C) q是基类型为int的指针变量 9.变量a所占内存字节数是 union U { char st[4]; int i; long l; }; srtuct A { int c; union U u; } a;

B) 6,7

C) 5,6

D) 6,6

6.若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是a=1234 b=5 。

B) int a[5]={0,1,2,3,4,5}; D) char a[]={0,1,2,3,4,5};

2

A)4

B) 5

C) 6

D) 8

10.设有如下定义,若要使p指向data中的成员n,正确的赋值语句是

struct sk { int n;

float x;

B.*p=data.n;

} data,*p; A.p=&data.n;

D.p=(struct sk *) data.n;

C.p=(struct sk *)&data.n; 11.设有以下宏定义: #define N 3

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

则执行语句:z=2*(N+Y(5+1));后,z的值为 A) 出错 A ) '\\\\' A) swicth A) '\\084'

B) 42 B) \

C) 48

D) 54

12.下列不正确的转义字符是:

C) '074' C) Case C) 'ab'

D) '\\0' D) default D) \

13.在C语言提供的合法的关键字是:

B) cher B) '\\x43'

14.在C语言中,合法的字符常量是: 15.以下叙述中正确的是______。 A)构成C程序的基本单位是函数

B) 可以在一个函数中定义另一个函数

C)main()函数必须放在其它函数之前 D) 所有被调用的函数一定要在调用之前进行

16.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。

A) scanf(\ C) scanf(\ 17.下列程序的输出结果是: A)3 main()

{double d=3.2;int x,y; x=1.2;y=(x+3.8)/5.0; printf(\); }

18.下列程序执行后的输出结果是(小数点后只写一位) main()

{ double d; float f; long l; int i; i=f=l=d=20/3;

printf(”%d%ld%f%f\n”,i,l,f,d); A)6 6 6.0 6.0 A) 包含1个字符

B)6 6 6.7 6.7 B) 包含2个字符

C) 6 6 6.0 6.7 D) 6 6 6.7 6.0 C) 包含3个字符

D) 说明不合法

19.设有说明语句:char a='\\72';则变量a 20.下列叙述中正确的是: A) C语言编译时不检查语法

B) C语言的子程序有过程和函数两种 D) C语言所有函数都是外部函数

C) integer

D) default

C) C语言的函数可以嵌套定义 A) VAR

B) cher

B) 3.2 C) 0

D) 3.07

B) scanf(\D) scanf(\

21.下列选项中,合法的C语言关键字是:

3

22.在一个C语言程序中

A) main函数必须出现在所有函数之前 C) main函数必须出现在所有函数之后

B) main函数可以在任何地方出现 D) main函数必须出现在固定位置

23.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是()

A)if((a>b)&&(b>c)) k=1; B) if((a>b)||(b>c)) k=1 else k=0;

else k=0;

C)if(a<=b) k=0; D) if(a>b) k=1; else if(b<=c) k=1; else if(b>c) k=1; else k=0; 24.阅读以下程序:程序运行后,如果从键盘上输人5,则输出结果是 main() { int x; scanf(\

if(x--<5) printf(\else printf(\} A) 3

B) 4

C) 5

D) 6

25.假定w、x、y、z、m均为int型变量,有如下程序段: w=1; x=2; y=3; z=4;

m=(w

{for(i=9;i=j-1)printf(\} } A) 11

B) 10

C) 9

D) 10 11

B)循环体将执行两次

27.当执行以下程序段时 A)循环体将执行一次 x=-1;

do { x=x*x;} while(!x); 28.有如下程序,该程序段的输出结果是 main0 { int n=9;

while(n>6) {n--;printf(\} A) 987 int k=0 while(k=1)k++; while 循环执行的次数是 A) 无限次

B) 有语法错,不能执行 C) 一次也不执行

D) 执行1次

B) 876

C) 8765

D) 9876

29.有以下程序段

C)循环体将执行无限次

D)系统将提示有语法错误

B) 3

C) 2

D) 1

26.有以下程序,输出结果是

4

30.当调用函数时,实参是一个数组名,则向函数传送的是 A) 数组的长度

B) 数组的首地址

C) 数组每一个元素的地址 31.若有以下定义和语句:

char *s1=\则输出结果是 A) 4 A) *p

B) 5

C) 9

D) 10

D) a[p-a]

32.若有以下定义和语句: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是

B) a[10]

C) *a

33.若有以下的定义:

int a[]={1,2,3,4,5,6,7,88,9,10}, *p=a; 则值为3的表达式是 A) p+=2; *(p++); B) p+=2;*++p; C) p+=3; *p++; struct sk

{int a;float b;}data,*p; A) (*p).data.a

B) (*p).a

C) p->data.a D) p.data.a

35.以下对枚举类型名的定义中正确的是 A) enum a={one,two,three};

B) enum a {one=9,two=-1,three};

C) enum a={\ D) enum a {\36.有以下定义,不能给数组a输入字符串的语句是 #include char a[10],*b=a; A) gets(a) main( )

{ char *p[10]={\ printf(\} A) 2 main( ) {

int a[50], n; fun( n,&a[9]); }

A) void fun( int m,int x[ ]) C) void fun( int p, int *s) 39.以下程序的输出结果是 long fun( int n) { long s;

if(n==1||n==2) s=2; else s=n-fun(n-1); return s; } main()

{ printf(\, fun(3)); }

B) void fun( int s, int h[41]) D) void fun(int n, int a)

B) 3

C) 4

D) 5

38.若有以下调用语句,则不正确的fun函数的首部是

B) gets(a[0])

C) gets(&a[0]);

D) gets(b);

37.有以下程序,执行后输出结果是

D) p+=2;++*p;

34.设有如下定义, 若有p=&data;,则对data中的a域的正确引用是

D) 数组每个元素中的值

5

A)4

B) 3

C) 2

D) 1

40.设有如下定义,下面各输入语句中错误的是______。 struct ss { char name[10]; int age; char sex; } std[3],*p=std;

A) scanf(\ C) scanf(\ A)1,1

B) scanf(\ D) scanf(\

D)2,0

41.已知:char c='A';int i=1,j; 执行语句j=!c&&i++; 则i和j的值是______。

B)2,1 C)1,0

42.以下说法中正确的是_____。 A) #define和printf都是C语句

B) #define是C语句,而printf不是

C) printf是C语句,但#define不是 A) 2,M

B) 3,E

D) #define和printf都不是C语句

43.若有以下定义和语句char c1='b',c2='e'; printf(\则输出结果是______。

C)2,E

D) 输出项与对应的格式控制不一致,输出结果不确定 44.以下对C语言函数的描述中,正确的是______。

A) 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B) C函数既可以嵌套定义又可以递归调用 C) 函数必须有返回值,否则不能使用函数

D) C程序中有调用关系的所有函数必须放在同一个源程序文件中 45.若执行以下程序时从键盘上输入9,则输出结果是______。 main() { int n; scanf(\

if(n++<10) printf(\else printf(\} A) 11

B) 10

C) 9

D) 8

46.设有变量说明\int a[2][3]={1,2,3,4,5,6};int m,*ptr=&a[0][0];\执行语句m=(*ptr)*(*(ptr+2))*(*(ptr+4));

后,m的值为______。

A)15

B)48

C) 24

D) 60

47.设有 “char s[]=\,则以下叙述中正确的是______。 A) 数组s的内容与指针变量p中内容相同 B) 数组s的长度与strlen(p)的值相同 C) p[5]的值等于s[5]的值 D) sizeof(s)等于sizeof(*p) 48.有以下程序段 int k=0 while(k=1)k++;

while 循环执行的次数是______。 A) 无限次 A) 1

B) 有语法错,不能执行 C) 一次也不执行 B) 2

C) 3

D) 执行1次 D) 4

49.设有说明\,则\的值为 50.以下程序段的输出结果是______。

6

int a=0,b=4,k=2;

k=a+1>0||(++a<0)&&(!(b--<=0)); printf(“%d,%d,%d”,k,a,b);

B) 1,0,4

C) 1,0,3

D) 1,1,4

D)while(~x)

A) 1,1,3

51.与语句\等价语句是______。 A)while(x= =0)

B)while(x!=0)

C)while(x!=1)

52.已知:char a[20],b[20] ;则以下正确的输入语句是______。 A) gets(“a,b”);

B)scanf(\

C)scanf(\ A) i=*&q main()

{int a[3][3],*p,i; p=&a[0][0];

for( i= 0 ; i< 9 ; i++) p[i]= i+1; printf(\} A)3

B)6

C)9

D)随机数

55.若有宏定义,则执行语句\后,z的值是______。

#define N 2

#define Y(n)((N+1)*n) A) 21

B) 20

C) 28

D) 18

D)gets(\

D) j=*p++;

53.已知:int i=0,j=1,*p=&i,*q=&j;错误语句是______。

B) i=*&j C) p=&*&i

54. 下列程序执行后的输出结果是______。

56.若有以下程序: main()

{int k=2,i=2,m;

m=(k+=i*=k); printf(\}

执行后的输出结果是______。 A)

8,6

B) 8,3

C) 6,4

D) 7,4

57.在C语言中,对于存储类型为 的变量,只有在使用它们时才占用内存单元。 A)register和static

B)static和auto

D)auto和register

B)scanf(\

C)register和extern A) gets(“a,b”);

58.已知:char a[20],b[20] ;则以下正确的输入语句是______。 C)scanf(\ A)i=*&q 60.有以下函数 char fun(char *p) { return p; }

该函数的返回值是______。 A) 无确切的值

B) 形参p中存放的地址值 D) 形参p自身的地址值

C)6

D)7

C) 一个临时存储单元的地址 A)4

B)5 B)i=*&j

D)gets(\

C)p=&*&i

D) j=*p++;

59.已知:int i=0,j=1,*p=&i,*q=&j;错误语句是______。

61.已知 struct {int I;char c;float a;}test ; 则sizeof()的值是 。

7

62. 有以下程序,执行后输出结果是______。 main( )

{ char *p[10]={\ printf(\} A) 2

B) 3

C) 4

D) 5

D)(*(*a+3))+3

63.设有数组说明\,则不能等价表示的数组元素a[3][3]是______。 A)*(a[3]+3) A〕 6 main()

{int a=1, b= 2 ; printf(\

已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\\101'是______。 A) 字符A

B) 字符a

C) 字符e

D) 非法的常量

65.以下非法的赋值语句是______。 A) n=(i=2,++i); B) j++; 66.若有以下定义: char a; int b; float c; double d;

则表达式a*b+d-c值的类型为 A) float

B) int

C) char

D) double

67.表示关系x<=y<=z的c语言表达式为 A) (X<=Y)&&(Y<=Z) C) (X<=Y<=Z) main()

{int x=’f’; printf(”%c\n”,’A’+(x-’a’+1));} A) G

B) H

C)I

D)J

69.下列程序的运行结果是: #Include<stdio.h> main()

{int a=2,c=5 ;

printf(\

A)a=%2,b=%5 B) a=2,b=5 C)a=d,b=d D)a=%d,b=%d 70.C语言中用于结构化程序设计的三种基本结构是 A) 顺序结构、选择结构、循环结构 B) if、switch、break C) for、while、do-while D) if、for、continue

71.下列关于单目运算符++、--的叙述中正确的是 A) 它们的运算对象可以是任何变量和 常量

B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D) 它们的运算对象可以是char型变量、int型变量和float型变量

B) (X<=Y)AND(Y<=Z) D) (X<=Y)&(Y<=Z) C) ++(i+1); D) x=j>0;

B)*(*(a+3)+3) B) 8

C)*&a[3][3]

64.下列程序执行后的输出结果是______。

C) 10

D) 12

#define MA(x) x*(x-1)

68.下列程序执行后的输出结果是:

8

72.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是 for (i=5;i;i--) for(j=0;j<=4;j++){...} A) 20

B) 25

C) 24

D) 30

73.若有以下定义: float x; int a,b; 则正确的switch 语句是 A) switch(x)

B) switch(x)

{ case .0:printf(\ case 2.0:printf(\}

C)switch(a+b)

{ case 1,2:printf(\ case 3:printf(\

}

D) switch(a+b);

{ case 1:printf(\ case 1+2:printf(\ } main()

{ int a=5,*b,**c; c=&b; b=&a; ?? }

A)变量a的地址

{ case 1:printf(.\ case 2:printf(\

}

74.有以下程序段, 程序在执行了c=&b;b=&a;语句后,表达式:**c的值是

B)变量b中的值 C)变量a中的值 D)变量b的地址

75.有以下程序,程序运行后的输出结果是 #include main()

{ char str[][20]={\printf(\A)0 A) 84 int d=1; fun(int p) { int d=5; d+=p++;

printf(\,d); } main() {int a=3; fun(a); d+=a++;

printf(\,d); }

77.以下程序的输出结果是 int d=1; fun(int p) { static int d=5;

B)5

C)7 C) 95

D)20 D) 44

76.以下程序运行后,输出结果是

B) 99

9

d+=p;

printf(\,d); return(d); } main( ) { int a=3;

printf(\,fun(a+fun(d))); } A)6 9 9 B)6 6 9 C)6 15 15 D)6 6 15 78.有以下程序,执行后输出结果是 main( )

{ char a[]=\printf(\}

A) 7 7 main()

{ char w[ ][10]={\for (k=1;k<3;k++) printf(\}

A) ABCD FGH KL M

80.以下程序的输出结果是 main()

{ char ch[3][5]={\printf(\}

A) \B) \ 81.以下程序的输出结果是 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) 3 B) 4

C) 1

D) 9

C) \

D) \

B) ABCD

EFG IJ

C) EFG

D) FGH

KL

JK O

B) 8 8

C) 8 10

D) 10 10

79.以下程序输出的结果是

10

填空题

1.设x和y均为int型变量,且x=1,y=2,则以下表达式的值为【1.0】。 1.0+x/y

2.若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是 【5.0,4,c=3】。 int b,c; float a;

scanf(\,%d,c=%d\,&a,&b,&c); 3.设有以下变量定义,并已赋确定的值 char w; int x; float y ; double z;

则表达式:w*x+z-y所求得值的数据类型为【double】

4.若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是 [3] 。 c=(a-=(b-5)); c=(a)+(b=3);

5.设y是int型变量,请写出判断y为奇效的关系表达【(Y%2)= =1】。 6.已知字符A的ACSII码值为65,以下语句的输出结果是【B 66】 char ch=’B’;

printf(\7.有以下语句段 int n1=10,n2=20;

printf(\【n1=%d\\nn2=%d】\,n2);

要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。 n1=10 n2=20 8.若有语句 int i=-19,j=i%4; printf(\则输出的结果是【-3】。

9.若有程序,要求给i赋10,给j赋20,则应该从键盘输入【i=10,j=20】。 main() { int i,j;

scanf(\printf(\}

10.下面程序的功能是:计算1到10之间的奇数之和及偶数之和,请填空。 #include< Stdio.h> main()

{ int a, b, c, i; a=c=0;

for(i=0;i<=10; i+=2 ) { a+=i;

【b=i+1或b=1+i】; c+=b; }

printf(\偶数之和=%d\\n”,a); printf(\奇数之和=%d\\n”,c-11); }

11.下面程序的功能是:输出 100以内能被 3整除且个位数为 6的所有整数,请填空。

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

Top