admin 管理员组

文章数量: 887032


2023年12月16日发(作者:screen相关短语)

c语言试题库1

一、填空

1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。

2.一个C程序有且仅有一个main( ) 函数。

3.C语言描述“x和y都大于或等于z”的表达式是x>=z &&

y>=z。

4.C语言可以用来实现循环的结构化语句是while、do while、for。

5.数组名表示数组在内存的首地址。

a=3,*p=&a*p+2的值是5。

7.在C语言中,变量的存储类别有四种,它们是自动的,静态的,

动态的和寄存器的。

8.对_extern_和_static__型数组不赋初值,系统会对所有元素自动赋以0

值。

9.C语言中“文件包含”是通过___#include___命令完成的,而符号常

量是通过___#define_________命令定义的。

10.对于数组x[5][5],*(x+2)+3表示__&x[2][3]_ ___,

*(x[3]+2)表示___ x[3][2]_______。

11.若定义:struct {int y, m, d;} today, *pdata; 则为today分配内存

_6___ 字节,为pdata分配内存_2___字节。

12.C语言文件按数据的存放形式可分为__文本_文件和__二进制文件。

13.C语言文件是一个__字符____序列,这类文件称为___流____文件。

二、单项选择

1.关于字符常量和字符串常量的描述,错误的是( B )。

A 字符常量是用一对单引号括起来的单个字符。

B 字符常量可以是单引号。

C 字符串常量(简称字符串)是用一对双引号括起来的字符序列。

D 字符串常量可以包含转义字符。

2.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为 B 。

(A)2.7 (B)3.7(C)4.7 (D)4.03 3.执行下面两个语句后,输出的结果为___D__。

char c1=98;

printf(“%d %c”,c1,c1-32);

(A)97 66 (B)98 b (C)b 66 (D)98 B 4.用scanf(“%d,%d”,&a,&b)输入数据时,下面输入法中正确的是

A 。

(A)123,4 (B)123 4 (C)123;4 (D)5.以下关于运算符优先顺序的描述中正确的是_____C___

(A)关系运算符<算术运算符<赋值运算符<逻辑与运算符

(B)逻辑与运算符<关系运算符<算术运算符<赋值运算符

(C)赋值运算符<逻辑与运算符<关系运算符<算术运算符

(D)算术运算符<关系运算符<赋值运算符<逻辑与运算符6.下列程序段中,功能与其它程序段不同的是 B 。

(A)for(i=1,p=1;i<=5;i++) p*=i;

(B)for(i=1;i<=5;) { p=1;p*=i;i++;}

(C)i=1;p=1;while(i<=5) { p*=i;i++;}

(D)i=1;p=1;do { p*=i;i++;} while(i<=5);

7.C语言规定else总是与 D 配对。

(A)缩进位置相同的if (B)同一行上的if

(C)其之前最近的if (D)其之后最近的if

8.以下程序的运行结果为__A____。

main()

{ int n;

for( n=1;n<=10;n++)

{ if( n%3==0) continue;printf(“%d”,n);}

}

(A)12457810(B)369 (C)12 (D) 9.设x和y均为int型变量,则语句x+=y;y=x-y;x-=y;的功能是 D 。

(A)把x和y按从大到小排列(B)把x和y按从小到大排列

(C)无确定结果(D)交换x和y中的值

10.变量的指针,其含义是指该变量的_B____

(A)值(B)地址(C)名(D)一个标志

11.以下函数调用语句中含有 A 个实参。

func((e1,e2),(e3,e4,e5));

(A)2 (B)3 (C)5 (D)语法错误

12.以下正确的描述是____B____

(A)continue语句的作用是结束整个循环的执行

(B)只能在循环体内和switch语句体内使用break语句

(C)在循环体内使用break语句或continue语句的作用相同

(D)goto语句只能用于退出多层循环

13.以下程序运行的结果是 D 。

main()

{int a=2,b=3,c=2;

if(a

if(a

c--;

else

c+=1;

printf(“%dn”,c);

}

(A)0 (B)1 (C)2 (D)3

14.以下叙述正确的是 C 。

(A)在C程序中,main函数必须位于程序的最前面。

(B)C程序每行中只能写一条语句。

(C)C语言本是没有输入输出语句。

(D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。

15.以下叙述不正确的是 D 。

(A)逗号运算符的运算级最低。

(B)ABC和abc是两个不同的变量。

(C)若a和b类型相同,在执行a=b后,b的自身值不变。

(D)‘a’和“a”是完全等价的常量。

16.执行下面语句后的结果为 C 。

y=10;x=y++;

(A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11(D)x=11,y=10 17.Char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是A 。

(A)double (B)char (C)int (D)float

18.C语言中要求操作数必须是整数的运算符是 B 。

(A)/ (B)%(C)!= (D)=

19.int x=3,y=2;则表达式x+=x*=y+8的值为 C 。

(A)28 (B)30 (C)60(D)17

20.int a[4]={2,3,4},I;

i=a[0]*a[1]+a[2]*a[3];

i的值为 C 。

(A)2 (B)4 (C)6 (D)10

21.以下正确的函数定义形式是 C 。

(A)double fun(int x,int y);

(B)double fun(int x;int y)

(C)double fun(int x,int y)

(D)double fun(int x,y)

22.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是 B 。

(A)float型(B)int型(C)long型(D)double型23.若

有定义int a[4]={1,2,3};

请问a[a[a[0]]]的值是 C 。

(A)1 (B)2 (C)3 (D)4

24.以下正确的描述是_______B_____

(A)函数的定义可以嵌套,函数的调用不可以嵌套

(B)函数的定义不可以嵌套,函数的调用可以嵌套

(C)函数的定义和函数的调用均不可以嵌套

(D)函数的定义和函数的调用均可以嵌套

25.以下不正确的说法是_____A_______

(A)在函数内的复合语句中定义的变量在本函数范围内有效

(B)在不同函数中可以使用相同名字的变量

(C)形参是局部变量

(D)函数调用结束后,静态局部变量的值仍然保留。

26.已有定义:int x=3,y=4,z=5;

则表达式!(x+y)+z-1&&y+z/2的值是 D 。

(A)6 (B)0 (C)2 (D)1

27.main()

{int n[4]={1,2,3,4},k;

for(k=0;k<4;k++)

{if(k/2) break;

n[k]++;

}

printf(“%dn”,n[++k]);

}

执行后输出的结果是 C 。

(A)2 (B)3 (C)4(D)5

28.判断字符串是否相等,应当使用 D 。

(A)if(a==b) (B)if(a=b) (C)if(strcpy(a,b)) (D)if(!strcmp(a,b)) 29.以下程序运行结果是 A 。

void sub(int x,int y,int *z)

{*z=y-x;}

main()

{int a,b,c;

sub(11,7,&a);sub(5,a,&b);sub(a,b,&c);

printf(“%d,%d,%dn”,a,b,c);

}

(A)-4,-9,-5 (B)-4,9,5 (C)4,-9,-5 (D)-4,9,-5 30.以下程序运行结果是 B 。

main()

{int a[2][3]={1,3,5,4,7,6},i,j,b=a[0][0];

for(i=0;i<2;i++)

for(j=0;j<3;j++)

if(b

b=a[i][j];

printf(“%dn”,b);

}

(A)5 (B)7(C)4 (D)1

31.设有如下程序段,下面描述中正确的是( C )。

int k=10; while(k=0) k=k-1;

A 循环执行一次B循环是无限循环C循环体语句一次也不执行D

循环体语句执行一次

32.以下程序运行结果是 A 。

#include

main()

{char s[50]=”1234567”,*p=s;

int i;

i=*(p+5)-*(p+2);

printf(“%dn”,i*strlen(s));

}

(A)21(B)24 (C)14 (D)28

33.以下程序运行结果是 D 。

main()

{int a[]={1,2,3,4,5,6,7,8,9},i,j,k;

for(i=0,j=8;i

{k=a[i];a[i]=a[j];a[j]=k;}

printf(“%dn”,a[1]+a[5]);

}

(A)11 (B)12 (C)13 (D)14

34.以下程序运行结果是 C 。

main()

{int x[]={1,2,3},s,*p=x,i;

for(i=0,s=1;i<3;i++,p++)

s*=*p;

printf(“%dn”,s);

}

(A)2 (B)4 (C)6(D)8

35.下列程序的输出结果是(C)。

main( )

{ int a=7,b=5;

printf("%dn",b=b/a);

}

A 5

B 1

C 0 D不确定值

36.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是( B )。

A 7

B 8

C 9

D 2

37.设a为int型变量,执行下列赋值语句后,a的取值分别是( B )。

a=125.534; a=(int)125.521%4; a=5<2;

A 125,31,1

B 125,1,0

C 125,31, 0

D 125.534,2,1

38.以下程序的输出结果为(A )。

main( )

{int i;

for(i=5;i<8;i++) printf("%c",'*');

printf("t");

}

A ***

B *** *** *** ***

C *** ***

D * * *

39. int , short , long 定义定义的变量在内存中各占的字节数分别是( A )。

A 2,2,4

B 2,4,4

C 4,2,2

D 4,4,2

40. 常量076、0x4b分别表示了(B )进制整数。

A 十、十六

B 八、十六

C 十、八

D 无意义

41. (++a)*6-a%b,h=a==b/c是(A)。

A 算术表达式和关系表达式B算术表达式 C 关系表达式

D 第1个是算术表达式,第2个式子无意义

42. 关于字符常量和字符串常量的描述,错误的是( B )。

A 字符常量是用一对单引号括起来的单个字符。

B 字符常量可以是单引号。

C 字符串常量(简称字符串)是用一对双引号括起来的字符序列。

D 字符串常量可以包含转义字符。

三阅读填空

1.计算球的体积。

main()

{float r,v;

scanf(“ %f”,&r);

v=4*3.14*r*r*r/3 ;

printf(“v=%6.2fn”,v);

}

2.判断质数。

#include

main()

{int i,flag=1,n;

scanf(“%d”,&n);

for(i=2;i<=sqrt(n);i++)

if( n%i==0 )

{flag=0;

break;

}

if( flag==0 )

printf(“%d是质数n”,n);

else

printf(“%d不是质数n”,n);

}

3.计算数组中元素的平均值。

main()

{float average(int a[]);

int a[10],i;

float aver;

for(i=0;i<10;i++)

scanf(“%d”,&a[i]);

aver= average(a) ;

printf(“average is %6.2f”,aver);

}

float average(int a[])

{

int sum=0,i;

float aver;

for(i=0;i<10;i++)

sum=sum+a[i] ;

aver=sum/10;

return aver ;

}

4.统计字符串中字母的个数。

main()

{char s[50];

int i, j=0 ;

scanf(“%s”,s);

for(i=0; s[i]!=’0’ ;i++)

if(s[i]>=’A’&&s[i]<=’Z’||s[i]>=’a’&&s[i]<=’z’)

j++;

printf(“j=%dn”,j);

}

四程序分析:

1.

#include "stdio.h"

main()

{ int a=2,b=10,c=5,d,e,f,g,h,i;

d=a>b; e=a

g=a!=2; h=a==b/c; i=a>=c;

printf("d=%dn",d);

printf("e=%dn",e);

printf(“f=%dn”,f);

printf("g=%dn",g);

printf("h=%dn",h);

printf("i=%dn",i);

}

运行结果是:

2.

main( )

{ int a;

float b;

scanf("%d%f",&a,&b);

printf("a=%d,b=%fn",a,b);

}

从键盘输入10 40.8

运行结果是:

3.

#include "stdio.h"

main()

{ printf("===%dn",sizeof(5555));

printf("===%dn",sizeof(55556));

printf("===%dn",sizeof(86L));

printf("===%dn",sizeof(56.0));

printf("===%dn",sizeof(56.0f));

printf("===%dn",sizeof(56.0L));

}

运行结果是:

4.

#include "stdio.h"

main()

{ char x,y,z;

x= …a';

y=3+x;

printf("%ct%dn",x,x);

printf("%ct%dn",y,y);

x=-28;

z=98+x;

printf("%ct%dn",z,z);

}

运行结果是:

1.

/*a>b不成立,d=0*/

/*a<="" p="">

/*a<=2成立,f=1*/

/*a!=2不成立,g=0*/

/*a==b/c成立,h=1*/

/*a>=c不成立,i=0*/

2.

a=10,b=40.8

3.

===2 /*整型常量5555<32767系统自动分配2个字节,属int型*/ ===4 /*整型常量55556>32767系统分配4个字节, 属long型*/

===4 /*整型常量86L<32767,用户指定是long型常量,占4字节*/

===8 /*不加说明的实型常量是double型,占8字节*/

===4 /*实数后加f的常量,是float型,占4个字节*/

===10 /*实数后加L的常量,是long double型,占10个字节*/

4.

a 97

d 100

F 70

1.主函数是系统提供的标准函数。()

2.C语言允许多条语句写在同一行。()

3.语句“int number;”和“int Number;”定义的是同一个整型变量。()4.if语句可以实现if else语句的功能。()

5.While语句是先执行一次循环体,再判断循环的条件。()

6.do while语句常用在需要至少执行一次循环体的地方。()7.break语句是提前结束本次循环,并不终止循环。()

8.变量的值是存放在变量的存储单元中的数据。

9.变量的指针就是变量的地址。( )

10.字符数组的每个元素可以存放一个字符串。( )


本文标签: 语句 常量 函数 运算符 字符串