当前位置:文档之家› C语言程序设计选择填空习题及答案

C语言程序设计选择填空习题及答案

C语言程序设计选择填空习题及答案
C语言程序设计选择填空习题及答案

习题一

一、选择题

1.C程序的基本单位是(A)。

A.函数B.文件C.语句D.字符

2.C程序中的变量(B)。

A.不用说明B.先说明后引用

C.先引用后说明D.引用和说明顺序无关

3.变量的说明在(B)。

A.执行语句之后B.执行语句之前

C.执行语句当中D.位置无关

4.C语言是一种(C)。

A.机器语言B.符号语言

C.高级语言D.面向对象的语言

二、填空题

1.一个C程序总是从主函数开始执行。

2.结构化程序由顺序、选择、循环三种基本结构构成。

3.一个C程序只有一个名为main的主函数。

4.C程序中的每个语句以分号结束。

5.C程序中,函数由函数首部和函数体组成。

6.每个基本结构有一个入口和一个出口,没有死循环和死语句。7.算法是计算机解决问题所依据的步骤。

习题二

一、选择题

1.下列数据中属于字符串常量的是( B)。

A.ABC B."ABC" C.'abc' D.'A'

2.在计算机内存中,'\n'占用的字节数是( C)。

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

3.字符串"ABC"在内存中占用的字节数是( D)。

A.6 B.8 C.3 D.4

4.在C语言中,合法的长整型常数是( B)。

A.568701400 B.0L C.0.03546287 D.2.654e11

5.char型常量在内存中存放的是( A)。

A.ASCII代码值B.BCD代码值

C.十进制代码值D.内码值

6.下列各项中正确的标识符是( D)。

A.?bb B.a=8 C. b.βD.b_4

7.下列不正确的转义字符是( D)。

A.\\ B.\ 0 C.\" D.0x4

8.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为( B)。

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

9.设a的值为5,执行下列语句后,b的值不为2的是( C)。

A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=(float)a/2

10.执行语句x=(a=3,b=a--)后,x、a、b的值依次是( C)。

A.3,3,2 B.3,2,2 C.3,2,3 D.2,3,2

11.设有语句int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是( D)。

A.3 B.0 C.9 D.-12

12.在下列运算符中,优先级最高的是( B)。

A.&& B.% C.= D.>=

13.设整型变量a的值为3,则计算表达式a---a后,表达式的值为(B)。

A.1 B.0 C.2 D.表达式出错

14.设整型变量a、b、c的值均为2,表达式a---b+++c++的结果是( C)。

A.6 B.9 C.2 D.表达式出错

15.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是( D)。

A.1 B.2.5 C.2 D.2.0

16.下列表达式中符合C语言语法的赋值表达式是( C)。

A.a=4+b++c=a+8 B.a=4+b++=a+8

C.a=(4+b,b++,a+8) D.a=4+b,c=a+8

17.若有以下定义:char a;int b;float c;double d;,则表达式a*b+d-c的值的类型为( D)。

A.int B.float C.char D.double

二、填空题

1.在内存中存储"A"要占 2 个字节,存储'A'要占 1 个字节。

2.符号常量的定义方法是 #define 常量名常量。

3.无符号基本整型的数据类型符为 unsigned int双精度实型数据类型符为 double ,字符型数据类型符为 char 。

4.十进制数673的二进制、八进制和十六进值数分别为 1010100001 、 2412 和 2A1 。

5.在C语言中,书写八进制数时必须加前缀 0 ;书写十六进制数时必须加前缀 0x 。6.在微机上,int型、short型、long型、float型和double型数据一般在内存中分别占 2 字节、 2 字节、 4 字节、 4 字节和 8 字节。

7.设有下列运算符:<<、+、++、&&、>=,其中优先级最高的是 ++ ,优先级最低的是 && 。8.设x、y为int型变量,且x=1,y=2,则表达式1.0+x/y的值为 1.0 。

9.设整型变量x、y、z均为5,则:

①执行x-=y-z后,x的值为 5 。

②执行x%=y+z后,x的值为 5 。

10.数学式

a

b×c

的C语言表达式为 a/b*c) 。

三、简答题

1.字符常量与字符串常量有什么区别?

2.对于Turbo C系统来说,char型变量与int型变量在内存中存储数据的区别是什么?3.整型变量可细分为哪六类?

4.什么是一个实型数据的规范化指数形式?

5.设x=3.5,a=5,y=6.7,求算术表达式x+a%3*(int)(x+y)%2/4的值。

6.设a=2,b=3,x=4.5,y=1.6,求表达式(float)(a+b)/2+(int)x%inty的值。

7.设整型变量a=12,写出下列表达式运算后a的值。

① a*=2+5 ② a/=a+a ③ a+=a-=a*=a

8.写出下列程序的运行结果。

main()

{ char c1='A',c2='B',c3='C',c4='\101',c5='\h42';

printf("A%cb%c\t%c\t bc\n",c1,c2,c3);

printf("\t\b%c%c",c4,c5);

}

结果:AAbB C abc

AB

9.写出下面程序的运行结果。

main()

{ int i,j,m,n;

i=5;

j=6;

m=++i;

n=--j;

printf("%d,%d,%d,%d",i,j,m,n);

}

结果:6,5,6,5

习题三

一、选择题

1.printf()函数输出实数时,使用的格式字符是(C)。

A.%d B.%c C.%f D.%o

2.下面变量说明中(C)是正确的。

A.char:a ,b ,c; B.char a;b;c;

C.char a , b , c; D.char a,b ,c

3.putchar()函数可以向终端输出一个(D )。

A.整型变量表达式值B.实型变量值

C.字符串D.字符或字符型变量值

4.阅读以下程序,当输入数据的形式为:25,13,10〈CR〉,正确的输出结果为( D )。

main()

{ int x,y,z;

scanf("%d%d%d",&x,&y,&z);

printf("x+y+z=%d\n", x+y+z);

}

A.x+y+z=48 B.x+y+z=35 C.x+z=35 D.不确定值

5.以下说法正确的是( D )。

A. 输入项可以是一个实型常量

B. 只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");

C. 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);

D. 当输入数据时,必须指明变量的地址,如scanf("%f",&f);

6.以下能正确地定义整型变量a、b和c并为其赋初值5的语句是(C )。

A.int a=b=c=5; B.int a,b,c=5;

C.int a=5,b=5,c=5; D.a=b=c=5;

7.已知ch是字符型变量,下面正确的赋值语句是(B )。

A.ch='a+b'; B.ch='\xff'; C.ch='\08'; D.ch="\";

8.设x、y均为float型变量,则以下不合法的赋值语句是( B )。

A.++x; B.y=(x%2)/10; C.x*=y+8; D.x=y=0;

9.以下格式符中,不能用来输入实型数的是( B )

A.f B.e(E)C.g(G)D.x

10. 若float num=123.456,以%+10.4d的格式输出,结果正确的是( B )

A.123.456000 B. 123.4560 C.123.4560 D.+123.4560

二、填空题

1.以下程序的输出结果是 x=1 y=2 *sum*=3

10 squaredis :100 。

main()

{ int x=1,y=2;

printf("x=%d y=%d *sum*=%d\n",x,y,x+y);

printf("10 squared is :%d\n",10*10);

}

2.以下程序的输出结果是 a=325 x= 3.14 。

main()

{ int a=325;double x=3.1415926;

printf("a=%2d x=%7.2f\n",a,x);

}

3.假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空:a+=b ; b=a-b ;a-=b ;

4.若x为int型变量,则执行以下语句后x的值是 -14 。

x=7;

x+=x-=x+x;

5.C语句可以分为五类,含 7 种控制语句、声明语句、表达式语句、空语句和复合语句。

6.赋值语句是由赋值表达式加上一个分号构成。

7.a=12,n=5,表达式a%=(n%=2)值是 0 。

8.有一个输入函数scanf("%d",k);则不能使float类型变量k得到正确数值的原因是 k前无& 和 %d与k的类型不一致。

9.putchar()函数可以向终端输出一个字符。

10.已有定义int i,j;float x;为将-10赋给 i,12赋给 j,410.34赋给x,则对应以下scanf()函数调用语句的数据输入形式是 -12 C 410.34 。

scanf("%o%x%e",&i,&j,&x);

11.pirntf()函数中用到格式符%5s,其中数字5表示输出的字符串占5列,如果字符串长度大于5,则按实际宽度输出。

12.使用getchar()和putchar()函数必须在源程序中加 #include"stdio.h" 。

习题四

一、选择题

1.执行下面的程序段后,b的值为(B)。

int x=35;

char z='A';

int b;

b=((x&&15)&&(z<'a'));

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

2.设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n-c>d)后n的值为(B)。

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

3.若k是int型变量,且有下面的程序段,输出结果是(A)。

K=-3;

if(k<=0) printf("####");

else printf("&&&&");

A.#### B.&&&&

C.####&&&& D.有语法错误,无输出结果

4.设A、B和C都是int型变量,且A=3,B=4,C=5,则下面表达式中值为0的达式是(D)。

A.A&&B B.A<=B

C.A‖B+C&&B D.!((A

5.阅读程序:

#include"stdio.h"

main()

{ float x,y;

scanf("%f",&x);

if(x<0.0) y=0.0;

else if((x<5.0)&&(x!=2.0))

y=1.0/(x+2.0);

else if(x<10.0) y=1.0/x;

else y=10.0;

printf("%f\n",y);

}

若运行时从键盘上输入2.0,则上面程序的输出结果是(C)

A.0.000000 B.0.250000

C.0.500000 D.1.000000

6.阅读程序:

#include"stdio.h"

main()

{ int x=1,y=0,a=0,b=0;

switch(x)

{ case 1:

switch(y)

{ case 0:a++;break;

case 1:b++;break;

}

case 2:

a++;b++;break;

}

printf("a=%d,b=%d\n",a,b);

}

上面程序输出结果是(A)。

A.a=2,b=l B.a=l,b=l

C.a=l,b=0 D.a=2,b=2

7.下面程序的输出是(C)。

main( )

{ int a=–1,b=4,k;

k=(a++<=0)&&(!(b--<=0));

printf("%d%d%d%\n",k,a,b);}

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

8.为表示关系x≥y≥z,应使用C语言表达式( A )。

A.(x>=y)&&(y>=z) B.(x>=y)AND(y>=z)

C.(x>=y>=z) D.(x>=y)&(y>=z)

9.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为( D)。

A.a<>0 B.!a C.a=0 D.a

10.若有以下定义:

float x; int a,b;

则正确的switch语句是(D)。

A.switch(x)

{case 1.0:printf("*\n");

case2.0:printf("**\n");}

B.switch(x)

{case 1,2:printf("*\n");

case 3:printf("**\n");}

C.switch(a+B)

{case 1:printf("\n");

case 1+2:printf("**\n");}

D.switch(a+b);

{case 1:printf("*\n");

case 2:printf("**\n");}

11.下列语句中,错误的是(C)。

A.while(a=b)a++; B.while(0); C.do D.do

{printf(“ok\n”); {x++;

}while(x==5) }while(--x==0);

12. 执行语句:for(i=1;i++<4; )后变量i的值为:(B)。

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

13. 以下程序的输出结果是:(D)。

main()

{ int x=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d %d",x--,y);

}

A.10 1 9 2 B.9 8 7 6 C.10 9 9 0 D.10 10 9 1 14. 以下for语句的循环次数为:( B )。

int i=0,j=0;

for(;!j&&i<=5;i++)j++;

A.5次B.1次C.6次D.无限多次

15. 以下程序段中内嵌循环共被执行的次数为:( A )

for(i=5;i;i--)

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

{…}

A.20 B.24 C.25 D.30

二、填空题

1.设ch是char型变量,其值为A,且有下面的表达式:

ch=(ch>'A'&&ch<='Z')? (ch+32):ch

该表达式的值是 A。

2.若已知a=10,b=20,则表达式“!a

3.已知a=10,b=20,c=30,则表达式

a=25&&b--<=2&&c++?printf("***a=%d,b=%d,C=%d\n",a,b,c):printf("###a=%d,b=%d,C=%d\n",a,b,c);的值为###a=10,b=19,c=30 。

4.下面程序的输出结果是 0,0,4 。

main()

{ int a=-1,b=4,k;

k=(++a<0)&&!(b-->=0);

printf("%d%d%d\n",k,a,b);

}

5.假定所有变量均已正确说明,下列程序段运行后,x的值是 4 。

a=b=c=0; x=35;

if(!a) x--;

else if(b); if(c) x=3;

else x=4;

6.若执行下面的程序时,从键盘上输入3和4,则输出结果是 3 。

main( )

{ int a,b,s;

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

s=a;

if(a&&b) printf("%d\n",s);

else printf("%d\n",s--);

}

7.以下程序的输出结果是 x=11,i=11 。

main()

{ int x=1,i=1;

for(;x<50;i++)

{if(x>=10)

break;

if(x%2!=1)

{x+=3;

continue;

}

x-=1;

}

printf("x=%d,i=%d\n",x,i);

}

8.以下程序的输出结果是 i=9,j=10 。

main()

{ int i=10,j=0;

do

{j=j+i;

i--;

}while(i>j);

printf("i=%d,j=%d\n",i,j);

}

9.以下程序的输出结果是 35。

main()

{int m=7,n=5,i=1;

do

{if(i%m==0)

if(i%n==0)

{printf(“%d\n”,i);break;}

i++;

}while(i!=0);

}

10.以下程序的输出结果是1,-2 。

main()

{ int x=3;

do

{printf("%d",x-=2);

}while(!(--x));

}

11.以下程序的输出结果是 i=4,j=6 。

main()

{ int i,j;

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

{for(j=1;j<10;j++)

if(j==6)

break;

if(i<3)

continue;

if(i>3)

break;

}

printf("i=%d,j=%d\n",i,j);

}

习题五

一、选择题

1.下列为一维数组初始化时, 正确的是( D ).

A.int a[ ]={1,3,5,7,9,…,15}; B.int a[5]={ };

C.int a[5]={5*3}; D.int a[5]={0};

2.下列一维数组说明中,正确的是( A ).

A.#define M 10 B.int m;

float s[M]; scanf(“%d”,&m);

float a[m];

C.int m=10, a[m]; D.int a[ ];

3.若要将2,4,6,8存入数组a中,不正确的是( C ).

A.int a[4]={2,4,6,8}; B.int a[ ]={2,4,6,8};

C.int a[4]; a={2,4,6,8}; D.int a[4]; a[0]=2;a[1]=4,a[2]=6;a[3]=8;

4.若有说明: int a[5][5]; 则对数组元素的正确引用是( C ).

A.a[3+2][3] B.a[0,3] C.a[4][1+2] D.a[ ][2]

5.下列二维数组初始化中,错误的是( A ).

A.int a[2][ ]={{3,4},{5}}; B.int a[][3]={2,3,4,5,6,7};

C.int a[3][3]={0}; D.int a[5][4]={{1,2},{2,3},{3,4},{4,5}};

6.若有以下数组定义: char ch[]="book_120\n"; 则数组ch的存储长度是(D )。

A.7 B.8 C.9 D.10

7.以下程序段的输出结果是( A ).

char str[8]={'a','b','c','d','\0','y','z','\0'};

printf("%s",str);

A.abcd B.abcd yz C.abcdyz D.出错

8.设有如下定义:

char s1[20]="tianjin", s2[10]="beijing";

执行语句:strcpy(s1+4,s2); printf("%s",s1);后,输出结果是( B ).

A.tian B.tianbeijing C.tianjinbeijing D.tianbeij 9.合法的数组定义是( B )

A.int a[ ]={"string"}; B.int a[ ]={0, 1, 2, 3, 4, 5};

C.char a={"string"}; D.char a[ ]={0, 1, 2, 3, 4, 5}; 10.若有以下说明,则数值为4的表达式是( D )

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};

char c='a',d,g;

A.a[g-c] B.a[4] C.a['d'-'c'] D.a['d'-c]

11.下列语句中,正确的是( D )

A.char a[3][ ]={'abc', 'I'}; B.char a[ ][3]={'abc', 'I'};

C.char a[3][ ]={ 'a', "I"}; D.char a[ ][3]={"abc", "I"}; 12.设有如下定义,则正确的叙述为( C )

char x[]={"abcdefg"};

char y[]={'a','b','c','d','e','f','g'};

A.数组x和数组y等价B.数组x和数组y的长度相同

C.数组x的长度大于数组y的长度D.数组x的长度小于数组y的长度

二、填空题

1.设有定义语句“int a[3][4]={{1}, {2}, {3}}”,则a[1][1]值为 0 ,a[2][1]的值为 0 。

2.执行“int b[5]={ }, a[ ][3]={1, 2, 3, 4, 5, 6}”后,b[4]= 0 ,a[1][2]= 6 。3.下面程序的功能是输出数组s中最大元素的下标,请填空。

main()

{ int k,p;

int s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++) k=p;

if (s[p]>s[k])

printf("%d\n",k);

}

4.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。

#include"string.h"

main ()

{ int i,j, k ;

char str[ ]={ "1234567"};

for(i=0,j=strlen(str) /2 ; i

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

}

5 方阵的主对角线元素乘积,请填空。

5.下面程序求5

#include

main()

{ int a[5][5],i,j,ss;

printf("input data:");

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

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

scanf("%d",&a[i][j]);

ss= 1 ;

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

ss= ss* a[i][j] ;

printf("ss=%d\n",ss);

}

6.以下程序求任意10个实数的最大值和最小值。

#include

main()

{ int i;

float a[10],max,min;

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

scanf("%f",&a[i]);

max=min=a[0];

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

{ if(max

if(min>a[i]) min=a[i] ;

}

printf("最大值=%f\n",max);

printf("最小值=%f\n",min);

}

7.以下程序求二维数组中每行元素的最大值。

#include

#define M 4

#define N 5

main()

{ int a[M][N],amax,i,j;

for(i=0;i

for(j=0;j

s canf(”%d”,&a[i][j]);

for(i=0;i

{ amax=a[i][0] ;

for(j=1;j

if(a[i][j]>amax) amax=a[i][j];

printf("%d %d\n",i,amax);

}

}

习题六

一、选择题

1.以下叙述不正确的是( D )。

A.一个C源程序可由一个或多个函数组成

B.一个C源程序必须包含一个main()函数

C.C程序的基本组成单位是函数

D.C程序中的注释说明只能位于一条语句的后面

2.以下关于C语言函数参数的说法不正确的是( B )。

A.实参可以是常量、变量或表达式B.形参可以是常量、变量或表达式C.实参可以为任意类型D.形参应与其对应的实参类型一致3.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( C )。

A.地址传递B.由实参传给形参再由形参传回给实参C.单向值传递D.由用户指定传递方式

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

A.float型B.int型C.long型D.double型5.C语言规定,函数返回值的类型是由( D )。

A.return语句中的表达式类型所决定B.调用该函数时的主调函数类型所决定C.调用该函数时系统临时决定D.定义函数时所指定的函数类型所决定

6.在C语言程序中,以下正确的描述是( C )。

A.函数可以嵌套定义,但不可以嵌套调用B.函数的定义和调用均可以嵌套

C.函数不可以嵌套定义,但可以嵌套调用D.函数的定义和调用均不可以嵌套

7.若用数组名作为函数调用的实参,传递给形参的是( A )。

A.数组的首地址B.数组第一个元素的值

C.数组中全部元素的值D.数组元素的个数

8.如果在一个函数中的复合语句中定义了一个变量,以下关于该变量正确的说法是( A )。

A.只在该复合语句中有效B.在该函数中有效

C.在本程序范围内均有效D.为非法变量

9.以下不正确的说法为( D )。

A.在不同函数中可以使用相同名字的变量

B.形式参数是局部变量

C.在函数内定义的变量只在本函数范围内有效

D.在函数内的复合语句中定义的变量在本函数范围内有效

10.以下程序的正确运行结果是( A )。

#include

main()

{ int k=4,m=1,p;

p=func(k,m);printf("%d,",p);

p=func(k,m);printf("%d\n",p);

}

func(int a,int b)

{ static int m=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

A.8,17 B.8,16 C.8,20 D.8,8

11.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用<>(尖括号)括起时,寻找被包含的文件的方式是( C )。

A.仅仅搜索当前目录

B.先在源程序所在目录搜索,再按系统设定的标准方式搜索

C.直接按系统设定的标准方式搜索目录

D.仅仅搜索源程序所在目录

12.以下程序的正确运行结果是( A )。

int d=1;

fun(int p)

{ int d=5;

d+=p++;

printf("%d,d);

}

main()

{ int a=3;

fun(a);

d+=a++;

printf("%d\n,d);

}

A.84 B.99 C.95 D.44

13.若有以下调用语句,则不正确的fun()函数的首部是( D )。

main()

{ …

int a[50],n;

fun(n,&a[9]);

}

A.void fun(int m,int x[ ]) B.void fun(int s,int h[41]) C.void fun(int p,int *s) D.void fun(int n,int a)

14.下面的程序执行后输出的结果是( A )。

f(int a)

{ int b=0;

static int c=3;

b++;c++;

return(a+b+c);

}

main()

{ int a=2,i;

for(i=0;i<3;i++) printf("%d ",f(a));

}

A.7 8 9 B.7 9 11 C.7 10 13 D.7 7 7

15.以下程序执行后的输出结果是( B )。

int a, b;

void fun()

{ a=100;b=200; }

main()

{ int a=5,b=7;

fun();

printf("%d,%d \n", a,b);

}

A.100,200 B.5,7 C.200,100 D.7,5

16.下列不属于编译预处理的是( D )。

A.包含文件B.条件编译C.宏定义D.连接

17.下列语句中正确的是( D )。

A.#define MYNAME="ABC" B.#include string.h

C.for(i=0;i<10;i++); D.#include

18.下列语句中错误的是( A )。

A.#define PI=3.1415926 B.#include "math.h"

C.if(2); D.for(;;)if(1)break;

19.设有以下宏定义,则执行语句“z=2*(N+Y(5+1));”后,z的值为( B )。

#define N 3

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

A.出错B.42 C.48 D.54

20.以下程序中的for循环执行的次数是( C )。

#include "stdio.h"

#define N 2

#define M N+1

#define NUM (M+1)*M/2

main()

{ int i,n=0;

for(i=1;i<=NUM;i++)

printf("\n");

}

A.5 B.6 C.8 D.9

二、填空题

1.C语言中的函数,从能否可以返回值上可分为有返回值函数和无返回值函数。2.定义函数时,在函数头中除有函数名称外,还应有函数类型、参数类型和名称等信息。3.必须对函数定义才能确立函数可实现的功能,只有对函数调用才能实现函数的功能。4.C语言中,函数的调用有函数语句、函数表达式和函数实参三种方式。

5.C语言中,每个变量都有作用域和生存期,变量的作用域是变量有效范围,变量的生存期是变量作用域。

6.对函数或变量的声明是告诉系统此程序段要用到在其后面才定义的函数或变量,使函数或变量的作用域得以扩展。

7.C语言中,变量的存储类型有 4 种,存储方式有 2 种。

8.以下程序的输出结果是 246 。

void fun()

{ static int a=0;

a+=2;

printf("%d",a);

}

main()

{ int cc;

for(cc=1;cc<4;cc++) fun()

printf("\n");

}

9.以下程序的运行结果是 111 。

main()

{ increment();

increment();

increment();

}

increment()

{ int x=0;

x+=1;

printf("%d",x);

}

10.以下程序执行后输出的结果是 34 。

#include

f(int a)

{ int b=0;

static c=3:

a=c++,b++;

return(a);

}

main()

{ int a=2,i,k;

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

k=f(a++);

printf("%d\n",k);

}

11.以下程序执行后输出的结果是 4 。

long fib(int n)

{ if(n>2) return(fib(n-1)+fib(n-2));

else return(2);

}

main()

{ printf("%d\n",fib(3)); }

12.以下程序执行后输出的结果是 14 。

#include

long sum(register int x,int n)

{ long s;

int i;

register int t;

t=s=x;

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

{ t*=x;

s+=t; }

return(s);

}

main()

{ int x=2, n=3;

printf("s=%ld\n",sum(x, n));

}

13.设有定义如下:#define F(N) 2*N, 则表达式F(2+3)的值是 7 。

14.下面程序的执行结果是 5,6,12 。

#include

int fx(int x,int y)

{ int s;

s=(x++)+(++y);

return s;

}

main()

{ int a,b,k;

a=5;b=6;

k=fx(a,b);

printf("%d %d %d\n",a,b,k);

}

15.下面程序for循环执行 6 次,程序的运行结果是 12345 。

#include

#define M 3

#define FMN M+M

main()

{int i,n=0;

for(i=0;i

{n++;printf("%d",n);}

}

16.下面程序的执行结果是 0 。

#include

#define SR(x) x*x

main()

{ int a,m=5,n=2;

a=SR(m-n)/SR(m+n);

printf("%d\n",a);

}

17.设数组a有50个元素,函数fun1()的功能是按顺序分别给数组a中的元素赋以从2开始的偶数值,函数fun2()则按顺序每五个元素求一个平均值,并将求得的值放在数组s中,在空白处完成该程序。

#include

#define N 50

fun1(float a[])

{ int k,i;

for (i=0,k=2;i

{a[i]= k ;k+=2; }

}

fun2(float a[],float s[])

{ float sum=0;

int i,k;

for(i=0,k=0;i

{ sum+=a[i];

if((i+1)%5==0)

{ s[k]=sum/5;k++; sum=0 ; }

}

}

main()

{ float a[N],s[N/5];

int i;

fun1(a);

fun2(a,s);

for(i=0;i

printf("%5.1f ",a[i]);

printf("\n");

for(i=0;i

printf("%5.1f ",s[i]);

}

18.下面程序的运行结果是 abcxyz 。

#include

#include

main()

{ int k=0;

char s1[10]="abc",s2[10]="xyz";

strcat(s1,s2);

while(s1[k++]!='\0')

s2[k]=s1[k];

puts(s2);

}

19.下面程序经宏展开后,程序运行结果是 200 。

#define PR printf("sum=%d\n",sum)

#define ADD sum+=i

main()

{ int i,sum=0;

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

ADD;

PR;

}

习题七

一、选择题

1.变量的指针,其含义是指该变量的( B )。

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

2.以下程序中调用scanf()函数给变量a输入数值的方法是错误的,错误原因是( B )。

main()

{ int *p,*q,a,b;

p=&a;

printf("input a :");

scanf("%d",*p);

}

A.*p表示的是指针变量p的地址

B.*p表示的是变量a的值,而不是变量a的地址

C.*p表示的是指针变量p的值

D.*p只能用来说明p是一个指针变量

3.以下程序错误的原因是( A )。

main()

{ int *p,i;

char *q,ch;

p=&i;

q=&ch;

*p=40;

*p=*q;

}

A.p和q的类型不一致,不能执行*p=*q;语句

B.*p中存放的是地址值,因此不能执行*p=40;语句

C.q指向具体的存储单元,所以*q没有实际意义

D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p=*q;语句4.已有定义int k=2; int *ptr1, *ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是(B )。

A.k=*ptr1+*ptr2; B.ptr2=k;

C.ptr1=ptr2; D.k=*ptr1*(*ptr2);

5.以下程序运行结果是( B )。

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

{ *z=y-x;}

main()

{ int a ,b,c;

sub(10,5,&a);

sub(7,a,&b);

sub(a,b,&c);

printf("%4d,%4d,%4d\n",a,b,c);

}

A.5,2,3 B.-5,-12,-7 C.-5,-12,-17 D.5,-2,-7 6.下面程序段的运行结果是( A )。

char *s="abcde";

s+=2;

printf("%d",s);

A.cde B.字符'c'

C.字符'c'的地址D.无确定的输出结果

7.若有以下定义,则对a数组元素地址的正确引用是(B )。

int a[5],*p=a;

A.*&a[5] B.a+2 C.*(p+5) D.*(a+2)

8.若有以下定义,则对a数组元素地址的正确引用是( A )。

int a[5],*p=a;

A.p+5 B.*a+1 C.&a+1 D.&a[0]

9.若有以下定义,则p+5表示( A )。

int a[10],*p=a;

A.元素a[5]的地址B.元素a[5]的值

C.元素a[6]的地址D.元素a[6]的值

10.若有以下定义,且0≤i<6,则正确的赋值语句是( D )。

int s[4][6],t[6][4],(*p)[6];

A.p=t; B.p=s; C.p=s[i]; D.p=t[i]; 11.下面程序段的运行结果是(A )。

char *format= "%s,a=%d,b=%d\n"

int a=1,b=10;

a+=b;

printf(format, "a+=b",a,b);

A.for, "a+=b",ab B.format, "a+=b"

C.a+=b,a=11,b=10 D.以上结果都不对

12.下面程序段的运行结果是( D )。

char *p= "%d,a=%d,b=%d\n";

int a=111,b=10,c;

c=a%b;

p+=3;

printf(p,c,a,b);

A.1,a=111,b=10 B.a=1,b=111

C.a=111,b=10 D.以上结果都不对

13.下面程序的运行结果是( A )。

#include "stdlib.h"

fun (int **a,int p[2][3])

{ **a=p[1][1];}

main ()

{ int x[2][3]={2,4,6,8,10,12},*p;

p=(int *)malloc(sizeof(int));

fun (&p,x);

printf ("%d\n",*p);

}

A.10 B.12 C.6 D.8

14.设有如下定义,则以下说法中正确的是( C )。

char *aa[2]={"abcd","ABCD"};

A.aa数组元素的值分别是"abcd"和ABCD"

B.aa是指针变量,它指向含有两个数组元素的字符型一维数组

C.aa数组的两个元素分别存放的是含有四个字符的一维字符数组的首地址

D.aa数组的两个元素中各自存放了字符'a'和'A'的地址

15.设有以下定义,则下列能够正确表示数组元素a[1][2]的表达式是( D )。

int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};

int (*prt)[3]=a,*p=a[0];

A.*((*prt+1)[2]) B.*(*(p+5))

C.(*prt+1)+2 D.*(*(a+1)+2)

16.下列程序的输出结果是( B )。

main()

{ int a[5]={2,4,6,8,10},*p,**k;

p=a;

k=&p;

printf("%d",*(p++));

printf("%d\n",**k);

}

A.4 4 B.2 2 C.2 4 D.4 6

17.执行以下程序后,y的值是( C )。

main ()

{ int a[]={2,4,6,8,10};

int y=1,x,*p;

p=&a[1];

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

y+=*(p+x);

printf("%d\n",y);

}

A.17 B.18 C.19 D.20

18.设有如下定义,则执行语句*--p;后*p的值是( B )。

int a[5]={10,20,30,40,50},*p=*a[2];

A.30 B.20 C.19 D.29

19.设有如下定义,则下列程序段中正确的是( C )。

char *st="how are you";

A.char a[11], *p; strcpy(p=a+1,&st[4]); B.char a[11]; strcpy(++a, st);

C.char a[11]; strcpy(a, st); D.char a[], *p; strcpy(p=&a[1],st+2); 20.若有以下说明和定义,在必要的赋值之后,对fun()函数的正确调用语句是( B )。

fun(int *c){ }

main()

{ int (*a)()=fun,*b(),w[10],c;

}

A.a(w); B.(*a)(&c); C.b=*b(w); D.fun (b);

21.有如下程序,该程序的输出结果是( C )。

main()

{ char ch[2][5]={"6937","8254"},*p[2];

int i,j,s=0;

for(i=0;i<2;i++) p[i]=ch[i];

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

for(j=0;p[i][j]>'\0';j+=2)

s=10*s+p[i][j]-'0';

printf("%d\n",s);

}

A.69825 B.63825 C.6385 D.693825

二、填空题

1.指针运算符&和*分别称为取址运算和间接访问运算。

2.当用指针变量作为函数参数时,此时的参数传递是地址传递。

3.对于二维数组arr[5][5],arr,*arr,&arr[0],arr[2]+3,*(arr+2), *(arr[2]+3)的含义分别是5行5列元素值,0行地址,0行0列地址,0行地址,2行3列元素地址,2行0列地址,2行3列元素值。

4.函数的指针是函数入口地址。

5.返回指针值的函数是指针类型的函数。

6.若有说明语句 int a[3]={1,3,5},*p=a;则*++p,*p++,*p+1的值分别是 3,1,2 。

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

C语言选择题题库

C语言选择题题库

C语言程序设计题库说明 一本题库适用对象 计算机应用技术计算机软件软件技术计算机网络技术与计算机控制技术等专业 二本题库包含有175道选择题 三本题库所有题目均附有答案

一、选择题 下列各题ABCD四个选项中,只有一个选项是正确的,请将正确选项涂在答题卡的相应位置上,答在试卷上不得分。 1、不合法的整数是()。 A)0x35 B)43.6 C)0532 D)-346 2、下列合法的字符常量是()。 A)“f”B)x C)65 D)‘\Xab’ 3、设有整型变量x,单精度变量y=5.5,表达式x=float(y*3+((int)y%4))执行后,x的值为()。 A)17B)17.500000 C)17.5 D)1.5 4、在C语言中,负整数在内存中以()形式释放。 A)补码B)BCD码C)反码D)十进制数 5、在C语言中,要求参加运算的数必须是整数的运算符是()。 A)/ B)!C)%D)= = 6、()是C语言中非法的数据类型关键字。

A)float B)singed C)integer D)Char 7、现已定义整形变量int i=1;执行循环语句while(i++<5);后i的值为()。 A)1 B)5 C)6 D)以上三个答案都不正确 8、下列语句的输出结果是()。 printf(“%f\n”,(float)(2+4)/2); A)有语法错误不能通过编译B)3 C)3.0 D)3.000000 9、C语言中,整数-8在内存中的存储形式是()。 A)1111,1111,1111,1000B)1000,0000,0000,1000 C)0000,0000,0000,1000 D)1111,1111,1111,0111 10、设C语言中,int类型数据占2个字节,则long类型数据占()个字节。 A)1 B)2 C)8 D)4 11、若变量a已说明为float类型,则能实现将a 中的数值保留小数点后两位,第三位进行四舍五

C语言常见复习题(选择填空)及参考答案

C语言常见复习题及参考答案 一、选择题 1.下述标识符中,()是合法的用户标识符。 A.A#C B.getch C.void D.ab* 2.在C语言中,字符型数据在内存中是以()形式存放的。 A.原码 B.BCD码 C.反码 D.ASCII码 3.以下选项中不合法的用户标识符是()。 A.abc.c B.file C.Main D.PRONTF 4.以下选项中不合法的用户标识符是()。 A.123 B.printf C.Anbsp; D.Dim 5.可以在C语言程序中用做用户标识符的一组标识符是()。 A.void B.as-b3 C.for D.2c define -123 -abc Do WORD If cas SIG 6.在以下各组标识符中,合法的用户标识符是(1)、(2)、(3)。 (1)A.001 B.table_1 C.0_t D.k% Int t*.1 W10 point (2)A.Fast_ B.void C.pbl D. Fast+Big abs fabs beep (3)A.xy_ B.longdouble C.*p D.CHAR 变量1 signed history Float 7.()是构成C语言的基本单位。 A.函数 B.过程 C.子程序 D.子例程 8.若有说明:char s1='\067';char s2="1";char s3='1';则s1中(1),s2中(2),s3中(3)。

(1).A.包含3个字符 B.包含2个字符 C.包含1个字符 D.无定值,说明不合法 (2).A.包含1个字符 B.包含2个字符 C.包含3个字符 D.无定值,说明不合法 (3).A.包含1个字符 B.包含2个字符 C.包含3个字符 D.无定值,说明不合法 9.若x为int型变量,则执行以下语句后,x的值为 x=6; x+=x-=x*x A.36 B.-60 C.60 D.-24 10.在C语言中,char 型数据在内存中是以()形式存储的。 A.原码 B.补码 C.ASCII码 D.反码 11.以下运算符中优先级最低的算符为(),优先级最高的为()。 A.&& B.& C.|= D.|| E.?: F.!= 12.若有运算符>、*=、<<、%、sizeof,则它们按优先级(由低至高)的正确排列顺序为 A.*= << > % sizeof B.<< *= > % sizeof C.*= > << sizeof % D.*= > << % sizeof 13.若有以下类型说明语句 char w; int x; float y; double z; 则表达式w*x+z-y 的结果是()类型。 A.float B.char C.int D.double 14.若w,x,y,z 均为int 型变量,则执行下面的语句后, w=(1), x=(2), y=(3), z=(4)。 w=5; x=4; y=w++*w++*w++; z=--x*=--x*--x;

C语言选择题题库

C语言程序设计题库说明 一本题库适用对象 计算机应用技术计算机软件软件技术计算机网络技术与计算机控制技术等专业 二本题库包含有175道选择题 三本题库所有题目均附有答案

一、选择题 下列各题ABCD四个选项中,只有一个选项是正确的,请将正确选项涂在答题卡的相应位置上,答在试卷上不得分。 1、不合法的整数是()。 A)0x35 B)43.6 C)0532 D)-346 2、下列合法的字符常量是()。 A)“f” B)x C)65 D)‘\Xab’ 3、设有整型变量x,单精度变量y=,表达式x=float(y*3+((int)y%4))执行后,x的值为()。 A)17 B)17.500000 C) D) 4、在C语言中,负整数在内存中以()形式释放。 A)补码 B)BCD码 C)反码 D)十进制数 5、在C语言中,要求参加运算的数必须是整数的运算符是()。 A)/ B)!C)% D)= = 6、()是C语言中非法的数据类型关键字。 A)float B)singed C)integer D)Char

7、现已定义整形变量int i=1;执行循环语句while(i++<5);后i的值为()。 A)1 B)5 C)6 D)以上三个答案都不正确 8、下列语句的输出结果是()。 printf(“%f\n”,(float)(2+4)/2); A)有语法错误不能通过编译 B)3 C)D) 9、C语言中,整数-8在内存中的存储形式是()。 A)1111,1111,1111,1000 B)1000,0000,0000,1000 C)0000,0000,0000,1000 D)1111,1111,1111,0111 10、设C语言中,int类型数据占2个字节,则long类型数据占()个字节。 A)1 B)2 C)8 D)4 11、若变量a已说明为float类型,则能实现将a中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是()。 A)a=(a*100+/ B)a=(a*100+/100 C)a=(int)(a*100+/ D)a=(a/100+*

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

C语言题库_选择题(1)

本卷共有4道大 一、单项选择题(25道小题,共50分) 1、以下说法中正确的是(C)(2分) A、C语言程序总是从第一个的函数开始执行 B、在C语言程序中,要调用的函数必须在main()函数中定义 C、C语言程序总是从main()函数开始执行 D、C语言程序中的main()函数必须放在程序的开始部分 2、一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是(B)(2分) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 3、以下选项中,不合法常量的是(B)(2分) A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0 4、C语言中最简单的数据类型包括(B)(2分) A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 5、能正确表示逻辑关系:“10≥=a≥=0”的C语言表达式是(D)(2分) A、10>=a>=0 B、a>=0 and a<=10 C、a>=0||a<=10 D、a>=0&&a<=10 6、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分)A、6.500000B、6 C、5.500000 D、6.000000

7、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)(2分) A、INPUT x、y、z; B、scanf("%d%d%d",&x,&y,&z); C、scanf("%d%d%d",x,y,z); D、read("%d%d%d",&x,&y,&z); 8、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是(D)(2分)A、把x和y按从大到小排列B、把x和y按从小到大排列 C、无确定结果 D、交换x和y中的值 9、若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A)(2分)A、0B、0.5 C、1 D、2 10、设char ch='A';则ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是(B)。(2分) A、A B、a C、Z D、z 11、执行程序段int a=-1,b=4,k;k=(++a<0)&&!(b-- <=0);printf(“%d %d %d\n”,k,a,b);后的输出结果是(D )。 (2分) A、1 0 4 B、1 0 3 C、0 0 3 D、0 0 4 12、设intx=1, y=1;表达式(!x||y--)的值是(B)。(2分) A、0B、1 C、2 D、-1 13、程序段intx=3;do{printf(“%d”,x-=2);}while(!(--x));的输出结果是(C)。(2分) A、1 B、30 C、1-2 D、死循环

C语言考试题库及答案复习整理

C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a

C语言程序设计 复习题库

一、填空 1. break 语句通常用于switch // 循环中。 2. C 语言对数组下标的引用一般从0 开始。 3. C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。 4. C 标准库函数中,字符串的处理函数包含在string.h 头文件中,数学函数包含在 math.h 头文件中。 5. C 程序的运行需要经过编译和链接两步进行。 6. C 程序中用/**/ 括起来的内容是程序的注释语句。 7. C 语言函数是由函数首部和函数体两部分组成。其中,函数首部包括函数类型、函数 名和函数参数。 8. C 语言提供的三种逻辑运算符是& ,// ,!。 9. C 语言源程序经过编译后,生成文件的后缀名是.c 。 10. C 语言源程序经过连接后,生成文件的后缀名是.exe 。 11. C 语言中,关系表达式和逻辑表达式的值是1//0 。 12. C 语言中的标识符只能由三种字符组成,他们是字母,数字,下划线。 13. C 语言中的每条基本语句以;作为结束符,每条复合语句以} 作为结束符。 14. C 语言中函数返回值的类型是由函数类型决定的。 15. C 源程序的基本单位是函数。 16. int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b 的值为 4 。 17. int x=1,y=1,z=1; x+=y+=z; 则表达式xb>c 的值是0 。 19. 定义一个指针p,它指向一个有 6 个整型元素的一维数组,定义语句为int *p=a[6] ; 。 20. 定义一个指针数组p ,它有 4 个元素,每个指针指向一个整型数据,定义语句为int *p[4]; 。 21. 赋值语句是由= 加上一个分号构成。 22. 构成数组的各个元素必须具有相同的类型。 23. 关系表达式x+y>5 的相反表达式为x+y !>5 。 24. 函数strlen("1234\0xy") 的值为:9 。 25. 函数的形参在未被调用前不分配空间,函数形参的数据类型要和实参相同。 26. 函数体用{ 开始,用} 结束。 27. 结构化设计中的三种基本结构是顺序,选择,循环。

C语言选择题库答案

C语言选择题答案 1、在计算机内部,一切信息存取处理和传送的形式是:C A) ASCⅡ码 B) BCD码 C) 二进制 D) 十六进制 2、计算机的软件系统一般分为: C A) 系统软件、应用软件与各种字处理软件 B) 操作系统、用户软件与管理软件 C) 系统软件与应用软件 D) 操作系统、实时系统与分时系统 3、在C语言中,要求运算数必须是整型的运算符是:A A) % B) / C) < D) ! 4、下列语句中符合C语言语法的赋值语句是:D A) a=7+b+c=a+7; B) a=7+b++=a+7; C) a=7+b,b++,a+7 D) a=7+b;c=a+7; 5、如果按字长来划分,微机可以分为8位机`16位机`32位机和64位机. 所谓32位机是指该计算机所用的CPU: A A) 同时能处理32位二进制数 B) 具有32位的寄存器 C) 只能自理32位二进制定点数 D) 有32个寄存器 6、以下不正确的C语言标识符是____。 A(不能使用关键字) A) int B) a_1_2 C) ab1exe D) _x 7、、以下叙述正确的是______。 C A)在C程序中main函数必须位于程序的最前面 B)C程序的每行中只能写一条语句 C)C语言本身没有输入输出语句 D)在对一个C程序进行编译的过程中,可发现注释中的错误 8、下列运算中,操作数只能是整型的________D

A)+ B)* C) / D) % 9、下列转义字符中错误的一个是____。C(\x后面应该是1到2位十六进制数) A) '\000' B) '\0014' C) '\x111' D) '\2' 10、以下叙述中正确的是_____ C A) C语言的源程序不必通过编译就可以直接运行 B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C) C源程序经编译形成的二进制代码可以直接运行 D) C语言中的函数不可以单独进行编译 11、以下是正确的C语言标识符是____。 B A) #define(系统关键字) B) _123 C) %d (%错) D) \n(\错) 12、下列关于C语言的叙述错误的是____ A A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 13、C语言中字符型(char)数据在内存中的存储形式是____。 D A) 原码 B) 补码 C) 反码 D) ASCII码 14、将字符g赋给字符变量c,正确的表达式是。 C(使用8位二进制码,最左边1位为0) A) c=\147 B) c="\147" C) c='\147' D) c='0147' 可以用以下程序来检验: #include void main() { char c='\147'; printf("%c\n", c); } 15、以下程序的输出为____A____ #include void main() {

C语言程序设计期末考试选择题题库

第一章1、一个C程序可能出现的错误有(A)A,以上都包括 B,逻辑错误 C,运行错误 D,语法错误 2、C程序中一般可以包含几个函数(D) A.1个 B.多个 C.0个 D.至少一个 3.C语言属于程序设计语言的哪个类别(B) A.机器语言 B.高级语言 C.面向对象语言 D.汇编语言 4.以下关于C语言描述错误的是(B) A.一个C程序总是从main函数开始执行 B.一个C程序可以包含多个main函数 C.每个语句的最后必须有一个分号 D.C语言的注释符是以"/*"开始并以"*/"结束

5、在调试过程中,逻辑错误是指(C) A.所书写的语句,不符合C的语法。 B.在从obj生成exe文件的过程中,如果函数名书写错误,可能产生的错误。 C.程序的运行结果不符合题目要求。 D.在exe文件的执行过程中,产生运行异常。 第二章 1、16位的二进制数可以表示的整数的范围是(C) A.[-32768,32768] B.[-32767,32768] C.[-32768,32767] D.[-32767,32767] 2、C语言中的实型数据包括(A) A.float和double B.int和float C.float和char D.int和double 3、以下不合法的字符常量是(C) A.'2' B.'A' C.'ab'

4、在以下各组标识符中,均是合法的C语言标识符是(A) A.abc,A_4d,_student,xyz_abc B.auto,12-a,a_b,ab5.x C.A_4d,_student,xyz_abc,if D.abc,a_b,union,scan 5、若有定义:chara;intb;floatc;doubled; 则表达式a*b+d-c值的类型为(A) A.char B.float C.double D.int 6、类型修饰符unsigned不能修饰(D) A.char B.longint C.int D.float 7、若有定义:doublex=1,y; 执行语句,则y的值是(B) A,1 B,2.0

2020最新C语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 精选考试类文档,如果需要,请下载,希望能帮助到你们! 2020最新C语言考试题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串

在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。

A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

C语言试题与答案

大学C语言考试题库 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C语言选择题库

复习题 一、单项选择题(每题1分,共30分) 1、一个C语言程序是由()。 A.一个主程序和若干子程序组成B.函数组成 C.若干过程组成D.若干子程序组成 3、用来标识变量名、符号常量名、函数名、类型名、文件名、数组名的有效字符序列称为标识符。在C 语言中,规定标识符只能有字母、数值或下划线三类字符组成,且第一个字符必须为()或()。 A.字母,数字 B.数字,下划线 C.字母,下划线 D.字母,下划线,数字 5、C语言中,主调函数携带的参数列表称为实参,而被调用函数的参数列表习惯上称为()。 A.形式参数 B.值参 C.动态参数 D.静态参数 7、下列关于switch和break语句的结论中,只有()是正确的。 A.break语句是switch语句的一部分 B.在switch语句中可以根据需要使用或不使用break语句 C.在switch语句中必须使用break语句 D.以上三个结论中有两个是正确的 9、对于数组a[m][n]来说,使用数组的某个元素时,行下标最大值是(),列下标最大值是()。 A. m,n-1 B. m-1,n-1 C. m-1,n D. m,n 10、下面程序段的运行结果是()。 char a[7]=″abcedf″; char b[4]=″ABC″; strcpy(a,b); printf(“%c”,a[5]); A. d B. \0 C. e D. f 11、一维double型数组a长度为10,则实际所占内存字节数为()。 A. 20 B. 40 C. 60 D. 80 12、字符串a=“hello”,则函数调用strlen(a)的返回值为()。 A. 4 B. 5 C. 6 D. 4 13、在C语言中,&作为单目运算符时表示的是()。 A.地址与 B.取地址 C.输入地址 D.输出地址 14、对不同类型的数据有不同的格式字符。例如:()格式字符是用来输出十进制整数,()格 式字符是用来输出一个字符串。 A.c,s B.s,d C.d,c D.d,s 15、do-while语句的特点是()。

(完整版)C语言程序设计选择题库及答案

单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题, 应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123 C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodb start$it line# pow ??? aBc 3pai His.age while

【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义

C语言单项选择题

单项选择题(本大题共20小题,每小题1分,共20分) 1.C++源程序文件扩展名为(A) A..cpp B..h C..1ib D..obj 5.对使用关键字new所开辟的动态存储空间,释放时必须使用(C)A.free B.create C.delete D.realse 6.从本质上看,引用是被引用变量的(B) A.拷贝 B.别名 C.复制 D.克隆 7.在函数调用时,如某一默认参数要指明一个特定值,则有(B) A.其之前所有参数都必须赋值B.其之后所有参数都必须赋值 C.其前、后所有参数都必须赋值D.其前、后所有参数都不必赋值 8.设存在函数int max(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式不正确的是(C) A.int m=max(22,max(59,70));B.int m=max(max(22,59),70); C.int m=max(22,59,70);D.int m=max(59,max(22,70)); 9.设存在函数int min(int,int)返回两参数中较小值,若求15,26,47三者中最小值,下列表达式中错误的是(B) A.int m=min(min(15,26),min(15,47)); B.int m=min(15,26,47); C.int m=min(15,min(47,26)); D.int m=min(min(47,26),16); 13.函数int&min(int&,int&)返回参数中较小者,设有两整型变量int a=10;int b=15; 在执行语句min(a,b)--;之后,a,b值分别为(B) A.9,14 B.9,15 C.10,14 D.10,15 16.设函数void swap(int&,int&)将交换两形参的值,如两整型变量int a=10;int b=15;则执行swap(a,b)后,a、b值分别为(C) A.10,10 B.10,15 C.15,10 D.15,15

C语言程序设计考试题库

一、判断题 1、所谓常量,就是在程序运行过程中其值可以改变的量。() 2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。() 3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。() 4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。() 5、C语言中所有字符串都是以‘\0’结束的。() 6、do-while构成的循环语句中的循环体最少执行1次。() 7、数组名在C语言中表示的是数组的首地址。() 8、使用gets()函数输入字符串时可以在字符串中输入空格。() 9、算术运算符中‘/’的优先级高于‘%’。() 10、char a[5];该语句表明数组a中的第五个元素为a[5]。() 11、C语言源程序文件的扩展名均为.c。() 12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。() 13、C语言程序区分大小写,字符常量必须定义为大写。() 14、若int i=10,j=2;则执行i*=j+8;后i的值为28。() 15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。() 16、c语言中的标识符只能由字母,数字和下划线三种字符组成。() 17、函数getchar()的作用是:输出一个字符。() 18、一个C语言程序总是从第一个函数开始执行。() 19、在c语言中,char型数据在内存中是以ASCII码形式存储的。() 20、在C语言中switch语句必须使用break语句。() 二、选择题 1、以下说法正确的是()。 A、C语言程序总是从第一个函数开始执行。 B、C语言程序中要调用的函数必须在main()函数中定义。 C、C语言程序总是从main()函数开始执行。

(完整版)C语言考试题库之判断题

三、判断题(10道小题,共10分) 1、C 语言具有简洁明了的特点。(1分) 正确 2、预处理命令的前面必须加一个“#”号。(1分) 正确 3、标准格式输入函数scanf()可以从键盘上接收不同数据类型的数据项。(1分) 正确 4、在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。(1 分) 正确 5、continue 不是结束本次循环,而是终止整个循环的执行。(1分) 错误 6、在对数组全部元素赋初值时,不可以省略行数,但能省略列数(1分) 错误 7、.函数的实参传递到形参有两种方式值传递和地址传递(1分) 正确 8、直接访问就是直接利用变量的地址进行存取直接访问(1分) 正确 9、共用体变量可以作结构体的成员,结构体变量也可以作共用体的成员。(1分) 正确 10、文件指针和位置指针都是随着文件的读写操作在不断改变。(1分) 错误 11、C 语言标准格式输入函数scanf() 的参数表中要使用变量的地址值。(1分) 正确 12、浮点型常量的指数表示中,e 是可以省略的。(1分) 错误 13、任何表达式语句都是表达式加分号组成的。(1分) 正确 14、在switch语句中,每一个的case常量表达式的值可以相同。(1分) 错误 15、do-while循环的while后的分号可以省略。(1分) 错误 16、用字符串方式赋值比用字符逐个赋值要多占一个字节,用于存放字符串结束标志'\0'。正确 17、C语言函数返回类型的默认定义类型是void(1分) 错误 18、可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数(1分) 正确 19、枚举类型中的元素都具有一个整型值。(1分) 正确 20、C 语言是一种具有某些低级语言特征的高级语言。(1分) 正确 21、case语句后如没有break,顺序向下执行。(1分)正确

(完整版)C语言选择题(附答案)

第一单元C语言概述 一、选择题 1、C语言中主函数的个数为(A)个。 A)1 B)2 C)无穷个D)任意个 2、以下关于C语言描述错误的是(D)。 A)一个C程序总是从main函数开始执行T B)每个语句和数据声明的最后必须有一个分号T C)C语言的注释符是以“/*”开始并以“*/”结束的T D)一个C程序可以包含多个main函数F 3、C 语言源程序文件后缀为(C )。 A).EXE B).OBJ C).C D).ASM 4、C语言是由(C )组成的。 A)子程序B)主程序与子程序C)函数D)过程 5、C语言属于(B )语言 A)机器语言B)汇编语言C)高级语言D)面向对象语言 第二单元C语言基础 一、选择题 1、C语言中普通整型变量int在内存中占(B )字节。 A)1 B)2 C)3 D)4 2、下列不是C语言基本数据类型的是(A )。 A)字符型B) 整型 C) 浮点型D) 结构体 3、有关自增、自减运算,以下只有(D )是正确的。 A) ---f B) ++78 C) a—b++ D) d++ 4、已知A=7.5,B=2,C=3.6,表达式(A>B && C>A) || (AB)的值是(A )。 A)0 B)10 C)1 D)5

5、若有x=1,y=2,z=3,则表达式(x=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 7、判断整型变量digit是否为数字的正确表达式是(C )。 A) ‘0’<=ch<=‘9’B) (ch>=‘0’)&(ch<=‘9’) C) (ch>=‘0’)&&(ch<=‘9’) D) (‘0’<= ch)AND(‘9’>= ch) 8、一个C程序的执行是从(A )。 A)本程序的main函数开始,到main函数结柬 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 9、在以下标识符中,合法的是(C ) A)if B)0xy C)_xy D)case 10、C语言中各种类型的数据其实决定了占用内存的字节数。float占(C )。 A)一字节B)二字节C)四字节D)八字节 11、下列各选项中,(A )是有效的标识符。 A)ab B)3day C)day-3 D)#abc 12、以下叙述正确的是(C ) A) 在C程序中,每行只能写一条语句 B) 若a是实型变量,C程序中不允许a=10这种赋值。 C) 在C程序中,%是只能用于整数运算的运算符 D) 在C程序中,无论是整数还是实数,没有什么区别 13、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是( B )。 A)132↙B)1,3,2↙ C)a=1 b=3 c=2↙D)a=1,b=3,c=2↙ 14、设整型变量a为5,使b不为2的表达式是( C )。 A)b = a/2 B)b = 6-(--a) C)b=a%2 D)b=a>3?2:1

相关主题
文本预览
相关文档 最新文档