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

c语言复习题答案

c语言复习题答案
c语言复习题答案

练习一

1 2 3 4 5 6 7 8 9 10

C D A C D C B C C C

11 12 13 14 15

A B D C B

二、填空题

1 编译 6 主函数(或main函数)

2 .exe 7 /* …*/

3 编译8 算法

4 顺序结构9 main函数

5 函数10 流程图

三、编程/思考题

1.C语言的主要特点有:(1)C语言具有结构化的高级编程语言应有的所有高级指令,使程序员不需要知道硬件细节。同时,C也具有一些低级指令,允许程序员能够直接快速地访问硬件。(2)C语言是结构式语言。(3)C语言是一种高效的语言。(4)C语言简洁紧凑,使用方便灵活。(5)C语言运算符丰富。(6)C语言是一种可移植性语言。

2.编辑C语言程序源代码,编译源文件,连接程序,执行程序。

3.算法具有以下特点:(1)有穷性;(2)确定性;(3)有零个或多个输入;(4)有一个或多个输出;(5)有效性。

4.算法流程图如下:

5.#include

void main()

{

printf("*********************************\n");

printf("This is a simple C program!\n");

printf("*********************************\n");

}

练习二

1 2 3 4 5 6 7 8 9 10

B C B A D A D B D A

11 12 13 14 15 16 17 18 19 20

C D B D A C D A D B

21 22 23 24 25

C B B A B

二、填空题

1 float,double 6 doube a=5.6,b=5.6;

2 普通常量和符号常量7 int x=32768

3 字母、数字、下划线8 ‘a’

4 回车换行,回车不换行9 9,90

5 float、double 、char 10 Beijing

China

三、思考题

1.解:C语言中,要求对所有用到的变量“先定义,后使用”,这样做的好处是:能够保证程序中变量名使用得正确;在编译时就能为变量分配相应的存储单元;便于在编译过程中检查对该变量进行的运算是否合法。

2.解:字符常量是一个字符,在程序中是用单撇号括起来的;字符串常量由0个或若干个字符组合而成,在程序中是用双撇号括起来的,在存储时,系统自动在字符串最后加上一个字符串结束符’\0’。

3.解:在内存中,字符型数据以ASCII码存储,ASCII码是一串二进制编码,每个字符的ASCII 码对应一个整数值,大写字母与其对应小写字母的ASCII码对应整数值相差32。因此,要将一个大写字母转换为小写字母,只需将该变量的值加上32即可。

4.解:常量’a’与”a”在内存中所占用的字节数不相同,因为’a’是字符常量,在内存中占用一个字节存储,而”a”是字符串常量,在内存中存储时,系统自动在其后加上一个字符串结束符’\0’,在内存中占用2个字节存储。

5. 若有定义int a;float f,则表达式’c’+a+f的结果为double型。因为表达式中f为float型,在计算之前必须先转换为double型,根据数据类型的自动转换规则,表达式的结果为double型。

6.解:整数在内存中以补码形式存储,负数的补码为反码+1,所以,当x=-12时,其在内存中的存储形式为:1111 1111 1111 0100。

7.解:输出结果为-32768,因为一个short型数据在内存中占用2个字节存储,所能表示的数值范围为-32768~32767,当x=32768时,超出了其能表示的范围,发生了溢出,数值32768的二进制编码的16位正好对应数值-32768。

8.解:若有x为int型变量,则执行x=3.14后,变量x的值为3,因为x为int型变量,不能存储实型数据,当把一个实型数据赋给x时,发生了数据类型转换,系统自动把实型数据的小数部分舍去。

9.解:两个程序的运行结果相同。因为字符型数据以ASCII码存储,ASCII码是一串二进制编码,每个字符的ASCII码对应一个整数值。因此,在一定范围内,整型数据和字符型数据是可以通用的。字符’a’和’b’对应的ASCII编码值分别为97,98。

10.解:(注:答案中的□代表空格)

运行结果为:

aAbB□□□□cC□□□□□□abc

A□□□□□□□BB

练习三

1 2 3 4 5 6 7 8 9 10

C D A B C C D B D B

11 12 13 14 15 16 17 18 19 20

C C C

D B C D D D A

21 22 23 24 25 26 27 28 29 30

C C C B A

D A D A A

31 32 33 34 35 36 37 38 39 40

B B A D B

C C

D C D

二、填空题

1 1 11 1

2 2 12 1

3 5.5 13 x>=0&&x<=1||x>=-1&&x<=0

4 3.

5 14 -16

5 1 15 -60

6 0 16 26

7 0 17 10,6

8 &&,||,!18 3

9 0 19 A

10 0 20 4

三、编程题

1.(1) 2.5, (2) 4.5;

2.如果一个表达式的值为“真”,则以1表示,如果值为“假”,则以0表示;当判断一个量的逻辑值时,系统将0判断为“假”,将非0判断为“真”。

3.(1) 0; (2) 1;(3)1;(4)0;(5)1

4.(1) 30; (2) 10;(3)45;(4)0;(5)0;(6)-420;(7)0;

5.a=4,b=6,表达式的值为6;

6.11,9,11,10

7.2,0

3,-1

8.5

9.#include

void main( )

{

int x;

printf("请输入x的值:");

scanf("%d",&x);

x%2?printf("奇数\n"):printf("偶数\n");

}

10.#include "stdio.h"

void main()

{char ch;

printf("请输入一个大写字母:");

scanf(“%c”,&ch);

ch=ch+32;

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

}

练习四

1 2 3 4 5 6 7 8 9 10

A B A D B D D A A B

11 12 13 14 15 16 17 18 19 20

C A B

D B A C D B D

21 22 23 24 25 26 27 28 29 30

D B A B A D B B A D

二、填空题

1 ;(分号)9 20

2 输出数据左对齐10 12 34

11 *3.140000,3.14*

3 可以使同一输出语句中的输出宽度得以改

4 x=1 y=2 *sum*=3 12 2,48,20.0,20.0

5 261 13 3.6

6 scanf("%d%f%f%c%c",&a,&b,&c1,&c2); 14 a=66,b=E

7 a=%d\nb=%d\n 15 A□□□B□□□<回车>

8 10,11

三、编程题

1.#include

main( )

{int a;

a=0x123;

printf(“%d\n”,A.;

}

2.#include

main( )

{int h,m,t=450;

h=t/24;

m=t%24;

printf("450分钟换算成小时和分钟表示:%d小时,%d分钟\n",h,m); }

3.#include

main( )

{ float pi,r,h,c1,cs,cvz;

printf("请输入圆的半径r和圆柱的高h:");

scanf("%f,%f",&r,&h);

pi=3.14159;

c1=2*pi*r;

cs=pi*r*r;

cvz=pi*r*r*h;

printf("圆的周长为: %6.2f\n",c1);

printf("圆的面积为: %6.2f\n",cs);

printf("圆柱的体积为:%6.2f\n",cvz);

}

4.#include

main( )

{ char ch;

printf("请输入一个字母:");

scanf("%c",&ch);

printf("字母%c对应的ASCII码为%d\n",ch,ch);

}

5.#include

main( )

{ int x,y;

printf("请输入两个整数:");

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

printf("两数的商是%5.2f,两数的余数是%d\n",(double)x/y,x%y); }

6.#include

main( )

{float f,c;

printf("请输入华氏温度:");

scanf("%f",&f);

c=5.0/9.0*(f-32);

printf("摄氏温度为:%f\n",C.;

}

7.#include

main( )

{char ch;

printf("请输入一个大写字母:");

scanf("%c",&ch);

ch=ch+32;

printf("小写字母为:%c\n",ch);

}

8.#include

main( )

{int num1,num2,num3;

float aver;

printf("请输入三个整数:");

scanf("%d,%d,%d",&num1,&num2,&num3);

aver=(num1+num2+num3)/3.0;

printf("三个整数分别为:%d,%d,%d\n",num1,num2,num3);

printf("平均值=%7.2f\n",aver);

}

9.#include

main( )

{int x,y,t;

printf("请输入两个整数:");

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

printf("交换前:x=%d,y=%d\n",x,y);

t=x;x=y;y=t;

printf("交换后:x=%d,y=%d\n",x,y);

}

10.#include "stdio.h"main()

{char ch1,ch2;

printf("请输入两个字符:");

ch1=getchar();

ch2=getchar();

printf("用putchar函数输出结果为:");

putchar(ch1);putchar(ch2);

putchar('\n');

printf("用printf函数输出结果为:");

printf("%c,%c\n",ch1,ch2);

}

练习五

1 2 3 4 5 6 7 8 9 10

D C B B D A C B D B

11 12 13 14 15 16 17 18 19 20

D C D C A B B B A C

21 22 23 24 25 26 27 28 29 30

D B A D D D A B B A

31 32 33 34 35 36 37 38 39 40

C B B B

D C A A D C

1 your $ 3.0 yuan/xiaoshi11 x<110&&x>=100

2 当a<0,b=-1;当a=0,b=0;当a>0,b=1 12 x=5

The value of x is unknown.

3 3635.413 F

4 x>y14 输入两个数x,y,比较x+y和x*y

哪个大。

5 x=215 2,0,0

6 x>-1&&x<=216 20

7 a+b>c&&b+c>a&&a+c>b17 5

5

1

8 -118 0

9 0,119 mark/10

10 x:y20 60~69

<60

Error!

三、编程题

1.

#include

main( )

{int x;

printf("请输入一个整数:");

scanf("%d",&x);

if(x%2= =0)

printf("%d是偶数!\n",x);

else

printf("%d是奇数!\n",x);

}

2.

#include

main( )

{

int a,b,x,y;

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

x=a*a+b*b;

if(x>100)

{y=x/100;

printf("%d",y);}

else

printf("%d",x);

}

3.

#include

main( )

{

int x;

float y;

scanf("%d",&x);

if(x<0) y=0;

else if(x>0&&x<=10) y=x;

else y=-0.5*x+20;

printf("%f",y);

}

4.

#include

main()

{int y=0,m=0,d=0,yt=0,mt=0,dt=0,age=0;

printf("请输入生日日期:");

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

printf("请输入今天日期:");

scanf("%d%d%d",&yt,&mt,&dt);

age=yt-y;

if(mt

else if(mt=m&&dt

printf("实际年龄:%d",age);

}

5.

#include

main()

{

char ch;

printf("请输入一个字符:");

scanf("%c",&ch);

if(ch>='0'&&ch<='9') printf("%c是数字!\n",ch);

else if(ch>='A'&&ch<='Z') printf("%c是大写字母!\n",ch); else if(ch>='a'&&ch<='z') printf("%c是小写字母!\n",ch); else printf("%c是其他字符!\n",ch);

}

6.

#include

main( )

{ int x;

scanf("%d",&x);

if((x%3==0)&&(x%5==0)&&(x%7==0))

printf("%d能被3,5,7整除!\n",x); else if((x%3==0)&&(x%5==0))

printf("%d能被3,5整除!\n",x);

else if((x%3==0)&&(x%7==0))

printf("%d能被3,7整除!\n",x);

else if((x%5==0)&&(x%7==0))

printf("%d能被5,7整除!\n",x);

else if(x%3==0)

printf("%d能被3整除!\n",x);

else if(x%5==0)

printf("%d能被5整除!\n",x);

else if(x%7==0)

printf("%d能被7整除!\n",x);

else

printf("%d不能被3,5,7整除!\n",x); }

7.

#include

main( )

{ float x;

int y;

printf("x=");

scanf("%f",&x);

switch(x<0)

{case 1:y=-1;break;

case 0: switch(x==0)

{case 1:y=0;break;

default:y=1;

}

}

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

}

8.

#include

#include

main()

{ float data1,data2,data3;

char op;

printf("表达式:");

scanf("%f%c%f",&data1,&op,&data2);

switch(op)

{case '+':data3=data1+data2;break;

case '-':data3=data1-data2;break;

case '*':data3=data1*data2;break;

case '/':if(data2==0)

{printf("除数为0!");

exit (1); }

data3=data1/data2;break;

}

printf("%6.2f%c%6.2f=%6.2f\n",data1,op,data2,data3); }

9.

#include

main( )

{ int score,temp;

char grade;

printf("请输入分数:");

scanf("%d",&score);

temp=score/10;

if((score>100)||(score<0))

printf("输入错误!\n");

else

{switch(temp)

{

case 10:

case 9:grade='A';break;

case 8:grade='B';break;

case 7:grade='C';break;

case 6:grade='D';break;

default:grade='E';

}

printf("score=%d,grade=%c\n",score,grade);

}

}

10.

#include

main( )

{ int a,b;

char symbol;

printf("请输入一个复数:");

scanf("%d%c%di",&a,&symbol,&b);

printf("复数为:%d%c%di\n",a,symbol,b);

if(symbol=='-')

symbol='+';

else

symbol='-';

printf("共轭复数为:%d%c%di\n",a,symbol,b);

}

练习六

1 2 3 4 5 6 7 8 9 10

C C B

D B C C B C B

11 12 13 14 15 16 17 18 19 20

B A A D

C C C B B B

21 22 23 24 25 26 27 28 29 30

D B D A C C D D D C

31 32 33 34 35 36 37 38 39 40

D C B A A D C B A A

二、填空题

1 * * 11 k=14,n=-1

2 2*x+4*y= =90 12 sum=34

3 3 13 * * * * #

4 j%3!=0 14 break

5 2 5 8 11 14 15 8

6 sjhiu 16 m+=i

7 s=254 17 x=1,y=20

8 36 18 m=1

9 3 19 continue

10 sum%4= =0 20 a=16 y=60

三、编程题

1.

#include

main()

{int i,sum=0;

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

if(i%7= =0)sum+=i;

printf("%d",sum);

}

2.

#include

main()

{ int r,m,n;

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

if(m

r=m%n;

while(r) { m=n;n=r;r= m%n; }

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

}

3.

#include

main()

{int x,i;

scanf("%d",&x);

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

if(x%i==0) printf("%3d",i);

}

4.

#include

main()

{ int i,t=1,s=0;

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

{ t=t*i;s=s+t;t=-t/i;}

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

}

5.

#include

main()

{int i,j=0;

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

{ if(i%3==2&&i%5==3&&i%7==2)

{ printf("%4d",i);

j=j+1;

if(j%5==0) printf("\n");

}

}

}

6.

#include

#include

main()

{long i=1;

double pi=0;

while(i*i>=1e-6)

{pi= pi+1.0/(i*i);i++;}

pi=sqrt(6.0*pi);

printf("pi=%10.6f\n",pi);

}

7.

#include

main( )

{ int i;

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

if(i*i%10= =i) printf("%3d ",i);

else if(i*i%100= =i) printf("%3d ",i); }

8.

#include

main( )

{ int day=0,buy=2;

float sum=0.0, ave;

do

{ sum+=0.8*buy;

day++; buy*=2;

} while(buy<=100);

ave=sum/day;

printf("%f",ave);

}

9.

#include

main()

{ int n,count,max,t;

count=0;max=0;

scanf("%d",&n);

do

{ t= n%10;

if(t==0) ++count;

else if(max

n/=10;

} while(n);

printf("count=%d,max=%d",count,max);

}

10.

#include

#include

main()

{int i,n;

double h,s,a=0,b=1.2;

n=100;

h=(b-a)/n;

s=0.5*(sin(a)*cos(a)+sin(b)*cos(b));

for(i=1;i<=n-1;i++) s+= sin(a+i*h)*cos(a+i*h); s*=h;

printf("s=%10.4f\n",s);

}

练习七

1 2 3 4 5 6 7 8 9 10

C D D B C C B B A B

11 12 13 14 15 16 17 18 19 20

D D C B C A C C C B

21 22 23 24 25 26 27 28 29 30

A A

B D B

C A A B B

31 32 33 34 35 36 37 38 39 40

B B D D D

C B C

D C

二、填空题

1 15 11 i < = 7

2 按行主顺序存放12 he

3 0、

4 13 1 3 4 6 8

4 double a[M][M]={0}; 14 1 2 1 2 3 4

5

6

7 8

5 0、

6 15 min=-2,row=2,col=1

6 Dog 16 num[i]<0

7 9 17 &a[i]

8 Hello 18 b[i]=a[i]+a[i-1];

9 10 4 6 8 2 4 6 12 2 19 t*M

10 600 20 aabcd

三、编程题

1.#include "stdio.h"

void main()

{

float score[10],ave,sum=0;

int i;

printf("请输入十个学生的成绩:\n");

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

{

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

sum=sum+score[i];

}

ave=sum/10;

printf("平均分为:%6.2f\n",ave);

printf("低于平均分的成绩是:\n");

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

if(score[i]

printf("%6.2f",score[i]);

printf("\n");

}

2.#define M 50

#include

void main()

{

int a[M],c[5]={0},i,n=0,x;

printf("Enter 0 or 1 or 2 or 3 or 4,to end with-1\n");

scanf("%d",&x);

while(x!=-1)

{

if(x>=0&&x<=4)

{

a[n]=x;n++;

}

scanf("%d",&x);

}

for(i=0;i

c[a[i]]++;

printf("The result is :\n");

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

printf("%d:%d\n",i,c[i]);

printf("\n");

}

3.#include

void main()

{

int a[2][3]={{1,2,3},{4,5,6}};

int b[3][2],i,j;

printf("The array a is:\n");

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

{

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

{

printf("%5d",a[i][j]);

b[j][i]=a[i][j];

}

printf("\n");

}

printf("The array b is:\n");

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

{

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

printf("%5d",b[i][j]);

printf("\n");

}

}

4.#define SIZE 30

#include

void main()

{

float b[SIZE/5],sum;

int a[SIZE],i,j,k;

for(k=2,i=0;i

{

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

}

sum=0.0;

for(k=0,i=0;i

{

sum+=a[i];

j=i+1;

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

{

b[k]=sum/5;

sum=0;

k++;

}

}

printf("The result is:\n");

for(i=0;i

printf("%7.2f",b[i]);

printf("\n");

}

5.#include

void main()

{

int a[5][5],i,j,n=1;

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

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

a[i][j]=n++;

printf("The result is:\n");

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

{

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

printf("%4d",a[i][j]);

printf("\n");

}

}

6.#include

void main()

{

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

int sum,x,y;

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

{

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

{

C语言试卷及答案

《C语言程序设计》考试试卷(答案) 一、填空题(每小空1分,共10分) 1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。 2.一个C程序有且仅有一个main( ) 函数。 3.C语言描述“x和y都大于或等于z”的表达式是x>=z && y>=z。 4.C语言可以用来实现循环的结构化语句是while、do while、for。 5.数组名表示数组在内存的首地址。 6.int a=3,*p=&a;*p+2的值是5。 二、单项选择题(每小题2分,共70分) 1.__B___是C语言合法的常量。 (A).45(B)078 (C)25.6e3.4 (D)‘xy’2.一个程序的执行是从 A 。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 (C)本程序的main函数开始,到本程序文件的最后一个函数结束。 (D)本程序文件的第一个函数开始,到main函数结束。 3.以下叙述正确的是 C 。 (A)在C程序中,main函数必须位于程序的最前面。 (B)C程序每行中只能写一条语句。 (C)C语言本是没有输入输出语句。 (D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 4.以下叙述不正确的是 D 。 (A)逗号运算符的运算级最低。 (B)ABC和abc是两个不同的变量。 (C)若a和b类型相同,在执行a=b后,b的自身值不变。 (D)‘a’和“a”是完全等价的常量。 5.int x=3,y=2;则表达式x+=x*=y+8的值为 C 。 (A)28 (B)30 (C)60(D)17 6.设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 7.执行下面两个语句后,输出的结果为__D___。 char c1=98; printf(“%d %c”,c1,c1-32); (A)97 66 (B)98 b (C)b 66 (D)98 B 8.执行下面语句后的结果为 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 9.Char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是A 。 (A)double (B)char (C)int (D)float 10.C语言中要求操作数必须是整数的运算符是 B 。

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语言试题及答案

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语言题库及答案

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语言试题及答案解析

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语言考试题库及答案复习整理

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 分,共 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语言试题及答案

C语言部分 一、选择题(每小题2分,共10分) (下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。 1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有( A,C,D, E ) A、*(a+1)为元素6的地址 这里a+1=a[1]的地址;*(a+1)的值是6,故A正确。 B、*(a[1]+1)的值为2 为8,故B不正确 C、**(a+1)+2的值为8 这里a+1是一个指针,指向的是a[1]. *(a+1)为a[1],a[1]指向的是a[1][0]. **(a+1)为6,加2得8,故C正确; D、a[0]与a相同 因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。 E、a[1][2]的值为10 它是指第二行的第三个元素,为10,正确 2、对函数的正确使用方法描述( A,C,D )。 A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组 B、实参数组元素和形参数组元素类型可以不一致 C、形参数组长度可以不指定 D、形参数组长度可以大于实参数组长度 E、数组名做参数属于值传递 3、对静态变量的正确描述( A,B,D,E )

A、静态局部变量在静态存储区内分配单元() B、静态外部变量可以赋初值,也可以不赋初值 C、静态外部变量的作用与外部变量相同 D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。 E、静态局部变量只赋一次初值 4、下列描述正确的是( A ,C)。 A、由main 函数及其参数argc和* argv[]可以实现命令行方式 B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中 //先写缓冲区数据到文件中,再释放文件指针 C、字符数组并不要求它的最后一个字符是‘\0’ //是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用\0,一样可以知道到哪里是字符数组的结尾。 D、‘A’和“A”都是字符串常量 E、若char*S=“\ta\017bc”;则指针变量S指向的字符串所占的字节数是7 5、在缓冲文件系统中用于读写的函数有( A,B,D ) A、putchar () B、fread() C、rewind () D、purw() E、fseek() 二、程序阅读,并给出运行结果(共10分,每题5分)。 (1)main() { unsigned a,b,x int n; a=0x763 输出结果: n=6;

C语言全部题目及答案

C语言全部题目及答案 SANY GROUP system office room 【SANYUA16H-

C语言全部题目及答案 Exercise 1: Programming Environment and Basic Input/Output 1.Write a program that prints “This is my first program!” on the screen. (a)Save this program onto your own disk with the name of e2-1a; (b)Run this program without opening Turbo C; (c)Modify this program to print “This is my second program!”, then save it as e2-1b. Please do not overwrite the first program. 2.Write a program that prints the number 1 to 4 on the same line. Write the program using the following methods: (a)Using four “printf” statements. (b)Using one “printf” statement with no conversion specifier(i.e. no ‘%’). (c)Using one “printf” statement with four conversion specifiers 3.(a) Write a program that calculates and displays the number of minutes in 15 days. (b) Write a program that calculates and displays how many hours 180 minutes equal to. (c) (Optional) How about 174 minutes?

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章 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语言概述习题 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语言试题库(带答案解析)~排版

一、选择题 1、以下不能定义为用户标识符的是( )。 (A) MAIN (B) _HJ (D) LINE1 2、以下不能定义为用户标识符的是( ) (A) If (B) H_J (D) LINE12 3、下面属于C 语言标识符的是( )。 (A) 2ab (B) @f (C) b 4、下列符号中用来表示C 语言中的回车换行的是( )。 (A) \r (C) \b (D) \t 5、在计算机系统中,可执行程序是( ) (A) 源代码 (B)汇编语言代码 (D) ASCII 码 6、在Visual C++ 环境下,C 源程序文件名的默认后缀是( )。 (A) .obj (B) .txt (D) .doc 7、Microsoft Visual C++ 中,C 语言可执行程序的扩展名是:( ) (B) obj (C) c 或cpp (D) txt 8、C 程序由( )组成。 (A)子程序 (B) 主程序和子程序 (D) 过程 9、C 程序的基本组成单位( )。 (A) 数据类型 (B) 变量和常量 (D) 表达式 10、C 语言中主函数的个数是( )。 (A) 2个 (C) 任意个 (D) 10个 11、一个 C 程序的执行是从( ) (B)本程序文件的第一个函数开始,到本程序文件最后一个函数结束. (C)本程序文件的第一个函数开始,到本程序main 函数结束. (D) 本程序的main()函数开始,到本程序文件的最后一个函数结束. 12、以下叙述正确的是 (A)在C 语言程序中,main 函数必须放在其他函数的最前面 (C)在C 语言程序中,只有main 函数才可单独进行编译 (D)每个后缀为.C 的C 语言源程序都应该包含一个main 函数 13、设变量a 是整型,b 是实型,c 是双精度型,则表达式2+’a’+b*c 值的数据类型是( )。 (A) int (B) float 14、以下选项中表示一个合法的常量是(说明:符号□表示空格) A) 9□9□9 C) D) 15、以下选项中非法的字符常量是 A)'\102' B)'\65' C)'\xff' 16、以下选项中,能表示逻辑值“假”的是 A)1 B) D) 17、下列关系表达式中,结果为“假”的是 A)(3+4)>6 C) 3<=4||3 D)(3<4)==1 18、关于C 语言变量,以下说法不正确的是( ) (A) 变量名由程序员定义,必须符合标识符的命名规则。 (B) 变量是程序运行过程中其值可以改变的量。 (D) 变量命名时应尽量做到见名知意。 19、关于C 语言中数的表示,以下叙述正确的是 B)只要在在允许范围内整型和实型都能精确表示 C)只有实型数在允许范围内能精确无误的表示,整型数会有误差 D)只有八进制表示的数在不会有误差 20、设有语句int a=3;,则执行了语句a+=a=a*a;后,变量a 的值是 。 A .3 B .0 C .9 21、在C 语言中,要求运算数必须是整型的运算符是 。 B ./ C .< D .! 22、C 语言中最简单的数据类型包括 。 A .整型、实型、逻辑型 C .整型、字符型、逻辑型 D .整型、实型、逻辑型、字符型 23 、在C 语言中,合法的字符型常量是 。 B ."A" C .65 D .A 24、若已定义x 和y 为double 型变量,则表达式x=1 ,y=x+3/2的值是 。 A .1 B .2 D . 25、设正x 、y 均为整型变量,且x=10,y=3,则以下语句的输出结果是 。 printf("%d,%d\n",x--,--y); A .10,3 B .9,3 C .9,2 26、若有定义int a=8,b=5,C;,执行语句C=a/b+;后,C 的值为 。 A . C . D .2 27、以下选项中,不正确的赋值语句是 。 A .++t; B .n1=(n2=(n3=0)); C .k=i==j; 28、设x 和y 均为 int 型变量,则语句:x+=y,y=x-y;x-=y;的功能是 。 A .把x 和y 按从大到小的顺序排列 B .把x 和y 按从小到大的顺序排列 C .无确定结果 29、以下程序的输出结果是 。 #include <> main() { char c='z'; printf("%c",c-25); } B .Z C .z-25 D .y 30、已知字母A 的ASCII 码为十进制数的65,以下程序的输出结果是 。 #include <> main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); B .B,C C .C,D D .不确定的值 31、若k 是int 型变量,则以下程序片段的输出结果是 。 k=-3; if(k<=0) printf("####"); printf("&&&&"); B .&&&& C .####&&&& D .有语法错误,无输出结果 32、关于以下程序,说法正确的是 。 #include <> main()

C语言期末考试题含答案

C语言期末考试题含答 案 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(21 的计算结果不. 相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue

7.在while(!x)语句中的!x与下面条件表达式等价的是() A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include <> void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2B)2,2,1C)2,2,2D)2,2,3 9、有以下程序: #include <> void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: void fun(int n,double x){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是() A)fun(int y,double m); B)k=fun(10,; C)fun(x,n); D)void fun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

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语言面试题及答案

1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错 4、语句for( ;1 ;)有什么问题?它是什么意思? 答:和while(1)相同。 5、do……whi le和while……do有什么区别? 答:前一个循环一遍再判断,后一个判断以后再循环 6、请写出下列代码的输出内容 以下是引用片段: #include main() { int a,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf("b,c,d:%d,%d,%d",b,c,d); return 0; }

答:10,12,120 7、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。 从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。 static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件 static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用; static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值; static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝 8、程序的局部变量存在于(堆栈)中,全局变量存在于(静态区)中,动态申请数据存在于( 堆)中。 9、设有以下说明和定义: typedef union {long i; int k[5]; char c;} DATE; struct data { int cat; DATE cow; double dog;} too; DATE max; 则语句printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:___52____ 答:DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20 data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.

大学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 。

相关文档