文档库 最新最全的文档下载
当前位置:文档库 › c语言习题.doc

c语言习题.doc

c语言习题.doc
c语言习题.doc

1.C语言中,int型数据在计算机内部是由()表示的。

答:int型数据在计算机内部是由16位补码表示的。

2.下列可以作为C语言用户标识符的是()。

A) _123 B) a1b2c3 C) int D) 123abc

答:A)和B)

C语言标识符必须是以英文字母(a到z)、或者下划线_开头的字符串。字符串中只能包含英文字母、下划线和数字(0到9)。但字符串不能是C语言中的32个保留字(例如int,short,long,unsigned,float,char,if,switch,for,while等)。

3.在C语言中,如果下面的变量都是int类型,则输出的结果是()。

sum=pad=5,pAd=sum++,pAd++,++pAd;

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

答:输出结果是5。

因为C语言是字母大小写敏感的,也就是说区分大小写字母。pad和pAd是两个不同的变量。4.以下程序的输出结果是 ( )。

#include

main()

{

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

}

答:0

因为stdio.h头文件中NULL的定义如下:

#define NULL 0

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

main()

{ int x=10,y=3;

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

}

答:3

因为两个同类型的数据作算术运算,其结果仍为该类型。即整数除以整数,商仍为整数。

10/3的商为3。

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

main()

{ int x=023;

printf("%d\n",--x);

}

答:18

因为023是一个八进制数,表达式--x的值为022,按照%d带符号的十进制数输出,结果为18。

注意:023是八进制数;23是十进制数;0x23是十六进制数。

7.在C语言中,不正确的int类型的常数是()。

A)32768 B)0 C)037 D)0xAF

答:A)

8.执行下面程序中的输出语句后 a的值是()。

main()

{ int a;

printf("%d\n",(a=3*5,a*4,a+5));

}

答:15

因为在计算逗号表达式a=3*5,a*4,a+5时,依次计算下面3个表达式:

a=3*5(结果变量a的值为15,该赋值表达式的值也为15)

a*4(该算术表达式的值为60)

a+5(该算术表达式的值为20,输出函数printf输出20)

逗号表达式的值为20,但变量a的值认为15。

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

#include

main()

{int a=2,c=5;

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

}

A)a=%2,b=%5 B)a=2,b=5 C)a=%%d,b=%%d D)a=%d,b=%d

答:D)

因为%%是格式说明符,输出%,其它原样输出。

如果输出函数语句改成printf("a=%%%d,b=%%%d\n",a,c);,那么输出结果为A)。

10.以下程序的输出结果是()。

#include

main()

{ int a,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

}

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

答:B)

241/100的值为2,2%9的值为2。

(-1)&&(-1)的值为1。在逻辑运算中,非0的值为真,真“与”真结果为真,关系和逻辑运算的结果如果为真用“1”表示,如果为假用“0”表示。

11.请选出以下语句的输出结果()。

printf("%d\n",strlen("\t\"\065\xff\n"));

答:5

函数strlen的功能是计算字符串长度。那么字符串"\t\"\065\xff\n"包含多少个字符呢?

\t是横向跳格字符;\”是字符”;\065是ASCII码值为八进制数065的字符;\xff是ASCII码值为十六进制数0xff的字符;\n是换行字符。该字符串共有5个字符。

注意:记住常用的转义字符。

12.下面程序的输出结果是()。

int i = 65536;

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

答:-1

因为int型变量i在C语言中是用16位补码表示的,而65535变成二进制数为1111111111111111,因此i的值为1111111111111111,按照带符号的十进制数%d输出-1,因为1111111111111111是-1的补码。

13.若有说明和语句:

int a=5;

a++;

此处表达式a++的值是()。

答:5

表达式a++的值是5表达式计算后,变量a的值是6。

14.若k为int变量,则以下语句()。

k=8567;

printf("|%-06d|\n",k);

答:|8567 |

两个|原样输出,格式符%-06d说明输出变量k的值长度为6且左对齐。

15.若x 为float型变量,则以下语句()。

x=213.82631;

printf("%-4.2f\n",x);

答:213.83

16.若x为double变量,则以下语句()。

x=213.82631;

printf("%-6.2e\n",x);

答:2.14e+02

17.若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),则执行下列语句

ch='a';

k=12;

printf("%x,%o,",ch,ch,k);

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

输出为()。

答:61,141,k=%d

18.若有以下定义:

char s=’\092’;

则该语句()。

A).使s的值包含1个字符

B).定义不合法,s的值不确定

C).使s的值包含4个字符

D).使s的值包含3个字符

答:B)

因为字符’\092’中的092应该是八进制数,但八进制数中不可能出现9。

19.执行以下语句后,输出结果是()。

int a =1;

printf("%d,%d",a,a++);

答:2,1

因为C语言中函数的实参计算顺序是从右至左。即首先计算 a++,然后计算a。

20.以下程序的输出结果是()。

#include

main ()

{

int i=010,j=10;

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

}

A)11,10 B)9,10 C)010,9 D)10,9

答: B)

010是八进制数。

21.已知字母A的ASCII码为65,以下程序的输出结果是()。

#include

main( )

{

char c1='A',c2='Y';

printf("%d,%d\n",c1,c2);

}

答:65,89

22.以下语句

int a=110,b=017;

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

输出结果是()

答:6e,16

110的十六进制数为6e,八进制数017加1为020,等于十进制数16。

23.以下程序

main()

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

a=(--i==j++)?--i:++j;

b=i++;

c=j;

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

输出结果是()

答:1,1,3

24.请读程序

#include

main()

{

int a; float b, c;

scanf("%2d%3f%4f", &a, &b, &c);

printf("\na=%d,b=%f,c=%f",a,b,c);

}

若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是()。答:a=98,b=765.000000,c=4321.000000

25.请读程序片段(字符串内没有空格字符):

printf("%d\n",strlen("AST\n012\1\\"));

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

答:9

字符串中包含9个字符,分别是A S T \n 0 1 2 \1 \\。

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

main()

{ int i=-1;

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

答:-1,65535

1.判断型 char 变量 c1 是否为小写字母的正确表达式为()。

A) 'a'<=c1<='z'

B) (c1>=a)&&(c1<=z)

C) ('a'>=c1)||('z'>=c1)

D) (c1>='a')&&(c1<='z')

答:D)

2.程序的运行结果是()。

main()

{

int a=1,b=2,c=3,d=4,m=2,n=2;

(m=a>b)&&(n=c>d);

printf("%d",n);

}

答:2

首先计算m=a>b,因为关系运算符>优先级高于赋值运算符=,a>b的结果为假(0),赋值后m的值为0。因为C语言计算逻辑表达式0&&(n=c>d)时,已经知道结果为0,因此n=c>d就不计算了。N 的值仍为2。

3.执行以下语句后 a 的值为();b 的值为()。

int a,b,c;

a=b=c=1;

++a||++b&&++c;

答:a的值为2;b的值为1。

4.程序的运行结果是()。

main()

{

int x=10,y=20,z=30;

if(x>y)

z=x;x=y;y=z;

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

}

答:20,30,30

因为if(x>y)

z=x;x=y;y=z;

是三条语句,即:

if(x>y)z=x;

x=y;

y=z;

而不是:

if(x>y)

{ z=x;x=y;y=z; }

5.程序的运行结果是()。

main()

{

int m=5;

if(m++>5)printf("%d\n",m);

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

}

答:6

因为表达式m++>5的值为假,m的值为6,执行语句printf("%d\n",m--);时输出6,m的值又变为5。

6.程序的运行结果是()。

main()

{

int a=100,x=10,y=20,m=5,n=0;

if(x

if(y!=m)

a=1;

else

if(n)a=10;

a=-1;

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

}

答:-1

在if嵌套中,else总是与它上面最近的if结合,因此本程序变为:

if(x

{ if(y!=m)

a=1;

else

if(n) a=10;

}

a=-1;

最后变量a的值为-1。

7.若有条件表达式 (exp)?a++:b--; 则以下表达式中能完全等价于

表达式(exp)的是()

A) (exp==0) B) (exp!=0)

C) (exp==1) d) (exp!=1)

答:B)

因为表达式(exp)的意义是:当变量exp的值为0时表示假;当变量exp的值为非0时表示真。因此它与(exp!=0)等价。

8.程序的运行结果是()。

main()

{

int k=4,a=3,b=2,c=1;

printf("%d\n",k

}

答:1

因为运算符?的结合性是自右至左。因此首先计算c

9.已知A=7.5,B=2,C=3.6,表达式

A>B&&C>A||!AB 的值是()。

答:0

10.当 m=2,n=1,a=1,b=2,c=3 时,执行完

d=(m=a!=b)&&(n=b>c) 后,n=(),m=()。

答:n=0,m=1

因为首先计算关系运算a!=b,结果为真即1,再计算赋值运算m=1;再计算b>c,结果为假即0,赋值n=0;最后d 的值为假即0。

11.程序的运行结果是()。

main()

{

int x,y,z;

x=1;y=2;z=3;

x=y--<=x||x+y!=z;

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

}

答:1,1

因为关系运算符优先级高于逻辑运算符,因此首先计算y--<=x,结果表达式的值为假(0),y 的值为1;再计算x+y!=z,结果为真(1),x的值为真(1)。

12.以下程序

main()

int i=0,j=0,k=6;

if((++i>0)||(++j>0))k++;

printf(”%d,%d,%d\n”,i,j,k);

输出结果是()

答:1,0,7

首先计算++i>0,结果表达式的值为真,变量i的值为1。在计算1||(++j>0)时,因为结果为真(1), C语言不再计算表达式(++j>0)了。因为if( )中的逻辑表达式值为真,因此计算k++,结果k值7。

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

main()

{

int a=2,b=7,c=5;

switch(a>0)

{ case 1:switch(b<0)

{case 1:printf("@");break;

case 2:printf("!");break;

}

case 0:switch(c==5)

{case 0:printf("*");break;

case 1:printf("#");break;

default:printf("?");break;

}

default:printf("&");

}printf("\n");

}

答:#&

因为表达式a>0的值为真(1),计算case 1:后面的语句

switch(b<0)

{case 1:printf("@");break;

case 2:printf("!");break;

}

由于表达式b<0的值为假(0),因此本语句执行结束。又由于本语句后面无break语句,因此继续执行

switch(c==5)

{case 0:printf("*");break;

case 1:printf("#");break;

default:printf("?");break;

}

结果输出 # ,由于上面的语句后面也无break语句,因此继续执行语句

printf("&");

输出 & 。

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

main()

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

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

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

}

答:1 0 3

关系表达式a++<=0的值为真(即1),因为首先判断-1<=0,然后执行a++,变量a的值为0;

关系表达式!(b--<=0) 的值为真(即1),因为首先判断4<=0, 然后执行b--,变量b的值为3,最后执行逻辑非运算!;

逻辑表达式(a++<=0)&&(!(b--<=0))的值为真(即1),执行赋值运算后,变量k的值为1。15.下面的程序片段所表示的数学函数关系是()。

y=-1;

if (x!=0)

if(x>0)y=1;

else y=0;

A)y= -1 (x<0) B)y= 1 (x<0) C)y= 0 (x<0) D)y=-1 (x<0)

0 (x=0) -1 (x=0) -1 (x=0) 1 (x=0)

1 (x>0) 0 (x>0) 1 (x>0) 0 (x>0)

答:C)

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

main()

{ int x=100,a=10,b=20,ok1=5,ok2=0;

if(a

if(b!=15)

if(!ok1)

x=1;

else

if (ok2) x=10;

x=-1;

printf("%\n",x);

}

A)-1 B)0 C)1 D)下面定的值

答:A)

因为语句x=-1;并不在if语句之中。

17.与 y=(x>0?1:x<0?-1:0)功能相同的if语句是()。

a) if(x>0)y=1; b) if(x)

else if(x<0)y=-1; if(x>0)y=1;

else y=0; else y=-1;

c)y=-1; d) y=0;

if(x) if(x>0)

if(x>0)y=1; if(x>0)y=1;

else if(x==0)y=0; else y=-1;

else y=-1;

答:A)

18.设a=6,b=-8,c=3,以下逻辑表达式的值为()。

'd'&&(a>b)&&(b>c)&&(a-c)

答:0

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

main()

{ int a,b,s;

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

s=a;

if(a

s=s*s;

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

}

答:16

20.下面的程序

main()

{int x=3,y=0,z=0;

if(x=y+z)printf("****");

else printf("####");

答:####

21.两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是()。main ()

{int x;

scanf("%d",&x);

if (x++>5)printf("%d",x);

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

}

答:7 5

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

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

if (!a) x--;

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

else x=4;

答:4

该程序:

a=b=c=0;

x=35;

if (!a) x--; else if(b);

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

23.以下两条if 语句合并成一条if 语句为()。

if (a<=b) x=1;

else y=2;

if (a>b) printf("****y=%d\n",y);

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

答:if (a<=b) { x=1;

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

}

else { y=2;

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

}

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

x=y=0;

while(x<15) y++,x+=++y;

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

答:8,20

y++,x+=++y;是一个逗号表达式语句,首先计算y++,然后计算x+=++y。

2.程序的运行结果是()。

#include

main()

{

int c=0;

while(c<=2)

{ c++;

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

}

}

答:1

2

3

3.输入 2473 ,下面程序的运行结果是()。

#include

main()

{

int c;

while((c=getchar())!='\n')

switch(c-'2')

{case 0:

case 1:putchar(c+4);

case 2:putchar(c+4);break;

case 3:putchar(c+3);

default:putchar(c+2);break;

}

printf("\n");

}

答:668977

第一次函数getchar()从键盘读取字符2,变量c的值为字符2,因此c-'2'的值为0,执行case 0:后面的语句putchar(c+4);和putchar(c+4); 执行break;语句后,switch语句执行结束。此次输出字符66。

4.下面程序段输出结果为()。

int x=3;

do{ printf("%d\n",x-=2); }while(!(--x));

答:1

-2

5.不是无限循环的语句为()。

A) for(y=0,x=1;x>++y;x=i++)i=x;

B) for( ; ;x++=i);

C) while(1){x++;}

D) for(i=10; ;i--) sum+=i;

答:A)

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

for(y=1;y<10;) y=((x=3*y,x+1),x-1);

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

答:x=15,y=14

执行完第1次循环后x=3 y=2

执行完第2次循环后x=6 y=5

执行完第3次循环后x=15 y=14

7.程序的运行结果是()。

#include

main()

{

int a,b;

for(a=1,b=1;a<=100;a++)

{ if(b>=20) break;

if(b%3==1){ b+=3; continue; }

b-=5;

}

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

}

答:8

8.下面程序段不是无限循环的是()。

A) int i=100;

while(1)

{i=i%100+1;

if(i>100)break;

}

B) for( ; ; );

C) int k=0;

do{++k;} while(k>=0);

D) int s=36;

while(s);--s;

答:C)

i值只能是从1到100之间变化,i>100永远是假,因此break永远也不会被执行。

for循环语句的第2个表达式没有,意味着永远为真。

每次循环k的值加1,当k的值为32767时,再执行++k,k的值变为-32768,循环结束。因为语句—s并不在循环中,while(s);永远执行一个空语句。

9.下面程序段()。

x=3;

do{ y=x--;

if (!y) {printf("*");continue;}

printf("#");

}while(1<=x<=2);

A)输出## B)输出##*

C)无限循环 D)含有不合法的控制表达式

答:C)

第一次循环执行y=x--;后x和y的值分别为2和3,因此输出1个#。执行1<=x<=2时由于逻辑运算符<=的结合性是从左至右,因此首先计算1<=x,结果为真(即1),然后计算1<=2,结果仍为真,再次执行循环。可以看出无论1<=x为真(即1)或者为假(即0),1<=x<=2的值始终为真,因此循环为无限循环。

10.程序的运行结果是()。

#include

main()

{int k=0;char c='A';

do {switch(c++)

{case 'A':k++;break;

case 'B':k--;

case 'C':k+=2;break;

case 'D':k=k%2;continue;

case 'E':k=k*10;break;

default:k=k/3;

}

k++;

} while(c<'G');

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

}

答:k=4

第1次循环执行前c=’A’,k=0,循环执行后c=’B’,k=2

第2次循环执行后c=’C’,k=4

第3次循环执行后c=’D’,k=7

第4次循环执行后c=’E’,k=1

第5次循环执行后c=’F’,k=11

第6次循环执行后c=’G’,k=4

11.程序的运行结果是()。

main()

{

int t=1; fun(fun(t));

}

fun(int h)

{

static int a[3]={1,2,3};

int k;

for(k=0;k<3;k++) a[k]+=a[k]-h;

for(k=0;k<3;k++) printf("%d,",a[k]);

printf("\n");

return(a[h]);

}

答:1,3,5,

-1,3,7,

12.程序的运行结果是()。

main()

{

int i,j,a=0;

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

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

{ if(j%2) break;

a++;

}

a++;

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

}

答:4

13.求两个正整数的最大公约数,填空。

#include

main()

{

int r,m,n;

scanf("%d%d",&m,&n);

if(m

while(r) {m=n;n=r;r= (2) ;} /*填空*/ printf("%d\n",n);

}

答:(1) { r=m; m=n; n=r;}

(2) m%n

辗转相除法求两个正整数的最大公约数。

14.程序的运行结果是()。

#include

main()

{

int i,x,y;

i=x=y=0;

do{++i;

if(i%2!=0){x=x+i;i++;}

y=y+i++;

}while(i<=7);

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

}

答:x=1,y=20

15.程序的运行结果是()。

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,

答:D)

16.下面程序的功能是计算 1-3+5-7+...-99+101 的值,请填空。

#include

main()

{

int i,t=1,s=0;

for(i=1;i<=101;i+=2)

{ (1) ; s=s+t; (2) ;} /*填空*/

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

}

答:(1) t=t*i

(2) t=-t

17.程序的运行结果是()。

#include

main()

{

int i,k=0;

for(i=1; ;i++)

{ k++;

while(k

{ k++;

if(k%3==0) goto loop;

}

}

loop:printf("%d,%d",i,k);

}

答:2,3

18.以下程序是利用互减法求三个自然数的最大公约数,请填空。 #include <stdio.h>

main()

int a,b,i;

printf("Enter the first number to a:");

scanf("%d",&a);

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

{printf("Enter next number:");

scanf("%d",&b);

a=gcd(a,b);

printf("The greatest common divisor is%d\n",a);

int gcd(int x,int y)

{if(x>y)

(1) ; /*填空*/

else if(x<y=

(2) ; /*填空*/

else

return x;

答:(1) gcd(x-y,y)

(2) gcd(x,y-x)

19.以下程序通过命令行参数将命令行中给出的若干个字符串连接起来并输出到屏幕上。程序文件名为p9.c,

执行该程序的命令是:

p9 abcd 97 12

请填空并写出输出结果。

/ * p9.c * /

#include<stdio.h>

char *hx(char *sl,char *s2)

{char *temp;

temp=sl;

while(*sl)

sl++;

while(*s2)

{(1) ; /*填空*/

sl++;

s2++;

*sl=’\0’;

return temp;

main(int argc,char *argv[])

{ int i;

for (i=1;(2) ;i++) /*填空*/

hs(argv[i],(3) ); /*填空*/

printf("%s\n",argv[1]);

答:(1) *s1=*s2

(2) i

(3) argv[i+1]

程序的输出结果为 abcd9712

20.请写出以下程序的运行结果()。

# include<stdio.h>

main()

char **pd;

static char *d[]={"up","down","left","right",""};

pd=d;

while( **pd!=NULL)

printf("%s\n",*pd++);

答:up down left right

21.若i为整型变量,i=0;

while (i=0)i++;

则以上循环

A)执行10次 B)执行1次

C)一次也不执行 D)无限循环

答:C)

因为i=0是赋值表达式,其值为0即假,而非条件表达式i==0。

22.下面的程序中有错误的是()。(每行程序前面的数字是行号)。

1 #include

2 main()

3{

4 float a[3]={0.0};

5 int i;

6 for(i=0;i<3;i++)scanf("%d",&a[i]);

7 for (i=1;i<3;i++) a[0]=a[0]+a[i]);

8 printf("%f\n",a[0]);

9 }

答:第6行

因为数组元素a[i]是浮点型变量,因此不能用%d作为格式编辑符,应该用格式编辑符%f。23.下列程序执行后的结果是()。

int a,y;

a=10;y=0;

do { a+=2;y+=a;

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

if(y>20)break;

}while(a=14);

A)a=12 y=12 B)a=12 y=12

a=14 y=16 a=16 y=28

a=16 y=20 D)a=12 y=12

a=18 y=24 a=14 y=26

C)a=12 y=12 a=14 y=44

答:B)

注意a=14是赋值表达式,其值为14(表示真),而非条件表达式a==14。

24.下面程序的功能是: 计算1 到 10 之间的奇数之和及偶数之和,请填空。

#include "stdio.h"

main()

{ int a,b,c,i;

a=c=0;

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

{ a+=i;

_____(1)_ _; /*填空*/

c+=b;

}

printf("偶数之和=%d\n",a);

printf("奇数之和=%d\n",c-11);

}

答:(1) b=i+1

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

main()

{ int i,j;

for(i=0; _____(1) _; i++) /*填空*/

{j=i*10+6;

if( _ __(2) __ )continue; /*填空*/

printf("%d",j);

}

}

答:(1) i<=9

(2) j%3!=0

26.C语言中()。

A)没有-while 语句构成的循环

B)do-while 语句构成的循环必须用break 语句才能结束循环

C)do-while 语句构成的循环,当while 语句中的表达式值为非零时结束循环

D)do-while 语句构成的循环,当 while语句中的表达式值为零时结束循环

答:D)

27.请读程序:

#include

#include

main()

{

float x, y, z;

scanf("%f%f", &x, &y);

z = x / y;

while(1)

{

if (fabs(z) > 1.0)

{ x = y; y = z; z = x / y;}

else break;

}

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

}

若运行时从键盘上输入3.6 2.4 (表示回车),则输出结果是()。

答:1.600000

30.定义如下变量:

int n=10;

则下列循环的输出结果是()

while(n>7)

{ n--;

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

}

答:9

8

7

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

main()

{

int x=3,y=6,a=0;

while (x++!=(y-=1))

{

a+=1;

if(y

}

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

}

答:x=5,y=4,a=1

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

main()

{

int x=2;

while(x--);

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

}

答:-1

循环while(x--);的循环体为一条空语句。当x为0时,循环结束,执行x—后,x的值为-1。

34.以下循环体的执行次数是()。

main()

{ int i,j;

for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d"\n",i);}

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

答:C)

36.下列程序执行后的结果是()。

main()

{ int i,j,m=0,n=0;

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

for(j=0;j<2,j++)

if(j>=i)m=1;n++;

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

答:1

语句n++;并不在循环体内。循环体仅包含语句if(j>=i)m=1;。

C语言题库及答案

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 。

2019年电大C语言考试题库(c语言小题+编程)

C语言程序设计课程期末复习练习 一、单选题 1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( )。 A. main B. MAIN C. name D. function 2.每个C语言程序文件的编译错误分为()类。 A. 1 B. 2 C. 3 D. 4 3. 字符串"a+b=12\n"的长度为()。 A. 6 B. 7 C. 8 D. 9 4. 在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为()语句。 A. for B. if C. do D. while 5. 在下面的do-while循环语句中,其循环体语句被执行的次数为()。 int i=0; do i++; while(i<10); A. 4 B. 3 C. 5 D. 10 6. 将两个字符串连接起来组成一个字符串时,选用的函数为()。 A. strlen() B. strcap() C. strcat() D. strcmp() 7. 若用数组名作为函数调用的实参,传递给形参的是()。 A. 数组的首地址 B. 数组中第一个元素的值 C. 数组中全部元素的值 D. 数组元素的个数 8. 假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a数组的首地址大( )个字节。 A. 4 B. 8 C. 16 D. 32 9. 假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的字符串,则p应定义为()。 A. char *p=s; B. char *p=&s; C. char *p;p=*s; D. char *p; p=&s; 10. 从一个数据文件中读入以换行符结束的一行字符串的函数为()。 A. gets() B. fgets() C. getc() D. fgetc() 11. 由C语言目标文件连接而成的可执行文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. c 12. 设有两条语句为“int a=12; a+=a*a;”,则执行结束后,a的值为( )。 A. 12 B. 144 C. 156 D. 288 13. 带有随机函数调用的表达式rand()%20的值在( )区间内。 A. 1~19 B. 1~20 C. 0~19 D. 0~20 14. for循环语句“for(i=0; i

c语言试题及答案

1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (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); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式

C语言练习试题和答案

单项选择题: 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从 C开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 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)。 [i] 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# 语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A) B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

大学c语言考试题库含答案

================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B

能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 main() {int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++;} printf("a=%d,b=%d",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0;

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

C语言试卷及答案

一、选择题(每题 1 分,共 20 分) 1. C 语言程序的三种基本结构是顺序结构、选择结构和结构。 A、循环 B、递归 C、转移 D、嵌套 2. 下列标识符中,合法的是_______ 。 A) unsigned B) 5ab C) INT# D)_num2 3. 若float x ;x = 10/4 ;x的值是。 A、2.5 B、2.0 C、3 D、 2 4. 表达式!x 等价于。 A、x==0 B、x==1 C、x != 0 D、x != 1 5. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为。 A、算术运算、赋值运算、关系运算 B、关系运算、赋值运算、算术运算 C、算术运算、关系运算、赋值运算 D、关系运算、算术运算、赋值运算 6. 能将高级语言编写的源程序转换为目标程序的是。 A、链接程序 B、解释程序 C、编译程序 D、编辑程序 7. 下列语句定义pf为指向float类型变量f的指针,是正确的。 A、float f, *pf = f; B、float f, *pf = &f; C、float *pf = &f, f; D、float f, pf = f; 8. 一个C程序的执行是从。 A、本程序的main函数开始,到main函数结束 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束 9. 能正确表示“当x的取值在[1,10]或[[200,210]范围内为真,否则为假”的表达式是________。 A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B、(x>=1)||(x<=10)||(x>=200)||(x<=210) C、(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D、(x>=1)||(x<=10)&&(x>=200)||(x<=210) 10. 对两个数组a和b进行如下初始化 char a[]=“ABCDEF”;char b[]={ …A?,?B?,?C?,?D?,?E?,?F?}; 则以下叙述正确的是。 A、a和b数组完全相同 B、a和b长度相同 C、a和b中都存放字符串 D、a数组比b数组长度长 11. 是不正确的字符常量。 A、'\n' B、'1' C、"a" D、'\101' 12. 若变量已正确定义,语句“if(a>b) k=0; else k=1;”和等价。 A、k=(a>b)?1:0; B、k=a>b; C、k=a<=b; D、a<=b ? 0 : 1; 13. 设变量定义为“int x, *p=&x;”,则&*p相当于。 A、p B、*p C、x D、*&x 14. 有两个字符数组a、b,则以下正确的输入语句是。 A)gets(a,b); B) scanf(“%s%s”,a,b); C) scanf(“%s%s”,&a,&b); D) gets(“a”),gets(“b”); 15. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是。 A、地址传递 B、单向值传递

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

三、判断题(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语言试题及答案 ()

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (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 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

C语言函数题库及答案

C语言函数题库及答案 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

第六部分函数 一、单项选择题 1.C语言中的函数返回值的类型是由(D)决定 A.return语句中的表达式B.调用函数的主调函数 C.调用函数时临时D.定义函数时所指定的函数类型 2.下面不正确的描述是(B)。 A.调用函数时,实参可以是表达式 B.调用函数时,实参和形参可以共用内存单元 C.调用函数时,将形参分配内存单元 D.调用函数时,实参与形参的类型必须一致 3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是 (D) A.地址传递B.值传递 C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式 4.下面的函数调用语句中含有(A)个实参 inta,b,c; intsum(intx1,intx2); …… total=sum((a,b),c); A.2B.3C.4 D.5 5.在C语言中(C) A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义和调用均不可以嵌套 C.函数的定义不可以嵌套,但是函数的调用可以嵌套 D.函数的定义和调用均可以嵌套 6.关于C语言中的return语句正确的是(C) A.只能在主函数中出现 B.在每个函数中都必须出现 C.可以在一个函数中出现多次 D.只能在除主函数之外的函数中出现 7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是(D) (floatx[],intn) (float*x,intn) (floatx[10],intn) (floatx,intn) 8.在C语言中,函数的数据类型是指(A) A.函数返回值的数据类型 B.函数形参的数据类型 C.调用该函数时的实参的数据类型 D.任意指定的数据类型 9.已知如下定义的函数: fun1(a) {printf("\n%d",a); } 则该函数的数据类型是(C)

C语言试题及答案

一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是(D )。 A. 软件是一种逻辑实体,具有抽象性 ~ B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于(D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 【 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件

A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。 - A. 设计说明书 B. 需求规格说明书 C. 可行性分析报告 D. 用户手册 9. 以下关于数据流图的说法错误的是( c )。 A. 数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储 B. 数据流图是用作结构化分析的一种工具 C. 传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成 D. 数据流图的绘制采用自上向下、逐层分解的方法 10. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( c )。 A. 数据库设计 B. 数据通信 C. 数据定义 D. 数据维护 11. 需求分析阶段的研究对象是( b )。 ¥ A. 系统分析员要求 B. 用户要求 C. 软硬件要求 D. 系统要求 12. 结构化方法的基本原则是( b )。 A. 模块化 B. 抽象与分解 C. 信息隐蔽 D. 逐步求精 13. 耦合度最高的是(b)耦合。 A. 环境 B. 内容 C. 控制 D. 数据 14. 内聚程度较低的是( a )内聚。 A. 偶然 B. 通讯 C. 顺序 D. 时间 15. 对一个程序来说,组成系统的模块数目( b ),则开发成本越小。 A. 越多 B. 越少 C. 顺序 D. 时间> 16. 画软件结构图时应注意调用关系只能是(B )。 A. 从下到上 B. 从上到下 C. 从左到右 D. 从右到左 17. 程序流程图中的箭头代表( b )。 A. 数据流 B. 控制流 C. 顺序流 D. 调用 18. 软件测试是软件质量保证的重要手段,下述( B )是软件测试的最基础环节。

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 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系

2019二级C语言题库参考答案解析

2019年C语言考题答案 1、程序填空题 给定的程序的功能是调用fun 函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat 的二进制中。 填空:( 1) STYPE(2)FILE(3)fp 改错:(1) for(i=0;i<=sl;i++)(2)t[2*sl]= 0“ 或t[sl+sl]= 0“ 编程: *c=(a/10)*1000+(b/10)*100+(a%10)*10+(b% 10); 2、程序填空题给定程序的功能是:从键盘输入若干文本 (每行不超过80 个字符),写到文件myfile4.txt 中,用-1 作为字符串输出输入的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText 和Writetext 实现。 填空:(1)*fw(2)str (3) str 改错:(1)voidfun(longs,long*t)(2) s1=s1*10; 编程:int i,j=0,min=a[0].s; for(i=0;i

else if(min==a[i].s) b[j++]=a[i]; } return j; 3、程序填空题 给定程序中,函数fun 的功能是:讲自 然数1~10 以及它们的平方根写到名为myfile3.txt 的文本中,然后再按顺序读出显示在屏幕上。 填空:( 1) fp( 2)fclose(fp)(3)myfile3.txt 改错:( 1)for(i=j+1;i

C语言试题库(完整版)

C语言试题库 一、单项选择 第一章 C语言概述 (1)一个C程序的执行是从 A、本程序的MAIN函数开始,到MAIN 函数结束。 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 C、本程序的MAIN函数开始,到本程序的最后一个函数结束。 D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。(2)以下叙述正确的是 A、在C程序中,MAIN函数必须位于程序的最前面。 B、 C程序的每行中只能写一条语句。 C、 C语言本身没有输入输出语句。 D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。(3) C语言规定,在一个源程序中,MAIN主函数的位置是在: A、必须在最前面。 B、必须在系统调用的库函数的后面 C、可以在任意位置。

D、必须在最后面 (4)一个C程序是由: A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 (5)以下叙述不正确的是: A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个MAIN函数 C、 C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 第二章数据类型、运算符与表达式 (1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32) A、4 B、16 C、32

D、52 (2)下列四组选项中,均不是C语言键字的选项是 A、define , IF, type B、getc, char, printf C、include, scanf, case E、 if, struct, type (3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,do B、float,1a0, _A C、b-a, goto, int D、_123, temp, INT (4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3 B、3*a*e/bc C、3*a*e/b*c D、a*e/c/b*3 (5)已知各变量的类型说明如下:

C语言试题及答案

C语言试题及答案 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

第1章C语言概述习题1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (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 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言 的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

c语言试题及答案

《C语言》课程综合复习资料 一、单选题 1. 在C语言中,字符型数据在存中的存储形式是 A)原码 B)补码 C)反码 D)ASCII码 2. 在C语言中,十进制数47可等价地表示为 A) 2f B) 02f C) 57 D) 057 3. 设有定义:int x=12,n=5; 则表达式 x%=(n%2) 的值为 A) 0 B) 1 C) 2 D) 3 4. 设有定义语句:char str[][20]={,"Beijing","中国石油大学"},*p=str; 则printf("%d\n",strlen(p+20)); 输出结果是 A)10 B) 6 C) 0 D) 20 5. 已定义以下函数: fun(int *p) { return *p; } 该函数的返回值是 A)不确定的值 B)形参p所指存储单元中的值 C)形参p中存放的值 D)形参p的地址值 6. C语言中,函数返回值的类型是由 A)return语句中的表达式类型决定 B)调用函数的主调函数类型决定 C)调用函数时的临时类型决定 D)定义函数时所指定的函数类型决定 7. 有以下函数定义: void fun( int n , double x ) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 A) fun( int y , double m ); B) k=fun( 10 , 12.5 ); C) fun( 10 , 12.5 ); D) void fun( 10 , 12.5 ); 8. 以下选项中不能正确赋值的是 A) char b[]={′H′,′e′,′l′,′l′,′o′,′!′}; B) char b[10];b="Hello!";

大学C语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 大学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 。

c语言试题及答案

单选题 1 .在C语言中,下列类型属于构造类型的是(D ) A整型B .字符型C .实型D .数组类型 2.下列字符串不是标识符的是( D ) A.sum B. Average C. Day_night D. M.D.JOHN 3.在C语言中,回车换行符是(A ) A. n B. t C. v D. b 4.在C语言中,语句和数据定义是用(C )作为结束标记的A句号B .逗号C .分号D .括号 5. 设有如下定义: int x=10,y=5,z; 则语句printf( “%dn”,z= (x+=y,x/y)); 的输出结果是( C ) A.0 B.1 C.3 D.4 6. 10 .以下程序的输出结果是( B ) main( ) {char c1= '8',c2= '2'; printf( “%c,%c,%d,%d”n ,c1,c2,c1 -c2,c1+c2); }

精选文库 A.因输出格式不合法,输出出错信息 B.8,2,6,106 C . 8,2,6,10 D . 825,9 7.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 (A)mai n() {int x; seanf( “ %d,&x); if(x++>5) printf( “%dn ,x); else prints “%dn ,x --); A. 7 禾R 5 B . 7 禾R 4 C . 6 禾R 4 8.表达式(int)2.1416 的值时(A ) A. 2 B. 2.1 C. 0 D. 3 9.下列运算符优先级最高的是(B ) A. > B. + C. && D. != 10.C语言容许函数值类型缺省定义,此时该函数值隐含的类型时(B ) A. float 型 B. Int 型 C. Long 型 D. Double 型 11、C程序的基本构成单位是(C) A子程序B、过程C、函数D、文件 12、C语言中要求操作数都为整型数据的算术符是( C )

C语言考试题库之判断题[1]_共5页

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

相关文档