当前位置:文档之家› 黄皮书_C语言习题参考答案

黄皮书_C语言习题参考答案

黄皮书_C语言习题参考答案
黄皮书_C语言习题参考答案

附录E 习题参考答案

2.8 习题参考答案

一、选择题

1.A

2. C

3.D

4.C

5.B

6.A

7.B

8.B

9.C

10.B 11.B 12.D 13.C 14.C

二、程序分析题

1. 16

2. c,100

3. 4.000000 4. 10,2 5.-2

三、填空题

1. j=6

2. 6.0

3. 6.6

4. x=1,y=2,z=2

x=1,y=3,z=3

x=2,y=1,z=1

3.9 习题参考答案

一、选择题

1.A

2. A

3.A

4.D

5.B

6.D

7.A

8.D

9.C 10.A

二、程序分析题

1.3,3 2. 16 3. 23 4. 6 5.10,4,3

三、程序设计题

1. 输入三角形的边长a、b、c,求三角形的面积area.

#include "math.h"

main( )

{ float a,b,c,s,area;

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

if (a+b>c&&a+c>b&&b+c>a)

{ s=1.0/2*(a+b+c);

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf("area=%7.2f\n",area);

printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);

}

else

printf("error!\n");

}

2.输入两个整数,求它们相除的余数

#define SURPLUS(a,b) a%b

main( )

{ int a,b;

printf("Input two integers a,b£o\n");

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

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

}

3.输入10个整数,统计并输出正数、负数和零的个数

main( )

{ int i,number[10];

int positive=0,negative=0,zero=0;

printf("Input ten numbers:");

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

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

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

{ if(number[i]>0 ) positive++;

else if(number[i]<0) negative++;

else zero++;

}

printf("positive=%d,negative=%d,zero=%d\n",positive,negative,zero);

}

4.4 习题参考答案

一、选择题

1.D

2.BC

3.D

4.C

5.B

6.D

7.B E

8.B

9.D

10.D 11.A 12.A

二、程序设计题

1.从键盘输入半径,计算圆的面积和周长,输出是要求取小数点后2位数字。

main()

{ float s,l.r;

xcanf(“%f”,&r);

l=3.14*2*r;

s=3.14*r*r;

printf(“l=%.2f,s=%.2f”,l.s);

}

2.输入一个华氏温度,要求输出摄氏温度,公式为c=5(f-32)/9,输出时要求有文字说明。

main()

{ float c,f;

printf(“请输入一个华氏温度:\n”);

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

printf(“%5.2f\n”,c);

}

3.用getchar函数读入两个字符给c1,c2,然后分别用putchar函数和printf函数输出这两个字符,并思考以下问题:

①变量c1,c2应定义为字符型还是整型?抑或二者皆可?

②要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?

③整型变量与字符型变量是否在任何情况下都可以互相代替?如“char c1,c2;”与“int c1,c2;”是否无条件等价?

#include “stdio.h”

main()

{ char c1.c2;

c1=getchar();

c2=getchar();

putchar(c1);

putchar(c2);

printf(“\n”);

printf(“%c,%c\n”,c1,c2);

}

运行结果:

输入ab↙

putchar语句的结果为:ab

printf语句的结果为:a,b

思考题:

1.c1和c2可以定义为字符型或整型,二者皆可。

2.在printf函数中用%d格式符输出:printf(“%d,%d\n”,c1,c2);

3.字符变量在计算机内占一个字节,而整型变量占两个字节,因此整型变量在可输出字符范围内(ASCII 码0—255之间的字符)是可以与字符数据互相转换的。如果

整数在此范围外,则不能代替。

5.6 习题参考答案

一、选择题

1.D

2.B

3.A

4.A

5.B

6. C

7.C

8.A

9.D

二、程序分析题

1. # # # #

2. 7 5

3. 0.1

4. 2

5. a=2,b=1

三、程序设计题

1.输入三个单精度数,输出其中最小值。

main()

{ float x,y,z,min;

printf("input three float numbers:");

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

if(x

else min=y;

if(min>z) min=z;

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

}

2. 输入三角形的三边长,输出三角形的面积。

#include "math.h"

main()

{ float a,b,c,s,area;

printf("input three edges:");

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

if((a+b>c)&&(b+c>a)&&(c+a>b))

{ s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf("area=%.2f\n",area);

}

else

printf("No triangle\n");

}

3.用if~else结构编写一程序,求一元二次方程ax2+bx+c=0的根。

#include "math.h"

main()

{ float a,b,c,disk,x1,x2;

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

disk=b*b-4*a*c;

if(disk>=0)

{ x1=(-b+sqrt(disk))/(2*a);

x2=(-b-sqrt(disk))/(2*a);

printf("x1=%f\n x2=%f\n",x1,x2);

}

else

{ printf("x1=%f+%f*i\n",-b/(2*a),sqrt(-disk)/(2*a));

printf("x2=%f-%f*i\n",-b/(2*a),sqrt(-disk)/(2*a));

}

}

4. 用switch~case结构编写一程序,输入月份1~12后,输出该月的英文名称。

#include "stdio.h"

main()

{ int month;

char ch;

while(1)

{ printf("\ninput month (1-12):");

scanf("%d",&month);

switch(month)

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

case 2:printf("February\n");break;

case 3:printf("March\n");break;

case 4:printf("April\n");break;

case 5:printf("May\n");break;

case 6:printf("June\n");break;

case 7:printf("July\n");break;

case 8:printf("August\n");break;

case 9:printf("September\n");break;

case 10:printf("October\n");break;

case 11:printf("November\n");break;

case 12:printf("December\n");break;

default:printf("input error\n");

}

getchar();

printf("\ncontinue?(Y/N):");

ch=getche();

if(ch!='y'&&ch!='Y') break;

}

}

5.main( )

{ int x;

printf("\n 1----小型车");

printf("\n 2----中型车");

printf("\n 3----大型车");

printf("\n 4----重型车");

printf("\n 请选择车型:");

scanf("%d",&x);

switch (x)

{ case 1: printf("费用是%d元\n",15);break; /*如果x 等于1*/

case 2: printf("费用是%d元\n",35);break; /*如果x 等于2*/

case 3: printf("费用是%d元\n",50);break; /*如果x 等于3*/

case 4: printf("费用是%d元\n",70);break; /*如果x 等于4*/

default: printf("输入错误!"); /*否则,提示输入有误*/ }

}

6.4 习题参考答案

一、选择题

1.B

2. C

3.B

4.C

5.D

6. B

7.C

8.B

二、程序分析题

1.52 2.22 3.8473 4.10 5.2

6.sum=50,i=5 7. sum=25,i=10 8.t=40,i=7 9.t=48,i=7 10. t=60,i=4 三、填空题

1.m%i==0 2.continue 3.switch(c) 4. x>=0

四、程序改错题

1. if(i%13) continue; if(i%13)break;

2. }while(i=100); }while(i<=100);

3. t+=1/i; t+=1.0/i;

4. {if(*ch>=’a’&*ch<=’z’){if(*ch>=’a’&&*ch<=’z’)

五、程序设计题

1. 输入两个正整数,输出它们的最大公约数和最小公倍数。

main( )

{ int a,b,maxgy,mingb;

printf("input two integer data:");

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

maxgy=a

while(a%maxgy!=0||b%maxgy!=0) maxgy--;

mingb=a>b?a:b;

while(mingb%a!=0||mingb%b!=0) mingb++;

printf("maxgy=%d mingb=%d\n",maxgy,mingb);

}

2. 求Sn=a+aa+aaa+…+aa…a(最后一项为n个a)的值,其中a是一个数字。如:

2+22+222+2222+22222(此时n=5),n的值从键盘输入。

main( )

{ int a,n,i;

float s=0,result=0;

printf("input a(1-9):");

scanf("%d",&a);

printf("input n:");

scanf("%d",&n);

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

{ s=s*10+a;

result+=s;

}

printf("\nresult=%f\n",result);

}

3. 打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数的立方和等于该数本身。如:153=13+53+33,则153是一个水仙花数。

main( )

{ int i,j,k;

for(i=1;i<=9;i++) for(j=0;j<=9;j++) for(k=0;k<=9;k++) if(i*i*i+j*j*j+k*k*k==i*100+j*10+k) printf("%8d",i*100+j*10+k);

} 4.

计算。

main( )

{ float sum=0,i; for(i=1;i<=100;i++)

if(i<=50)

sum+=1/i+1/(i*i);

else

sum+=1/i;

printf("sum=%f\n",sum);

}

5. 编程序按下列公式计算e 的值(精度要求为<10-6)。

… main( )

{ float i,s=1,sum=0; i=1;

while(1/s>=1e-6)

{ sum+=1/s;

i++;

s*=i; }

printf("e=%f\n",sum+1); }

6. 有一篮子苹果,两个一取余一,三个一取余二,四个一取余三,五个一取刚好不剩,问篮子至少有多少个苹果?

main( )

...!

31!21!111++++=e !1

n ∑∑==+5012100

111k k k

k

{ int total=5;

while(total%2!=1||total%3!=2||total%4!=3)

total+=5;

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

}

7. 笔记本每本5元,水性笔每支3元,橡皮擦1元三个,现有100元,要买100个上述产品,刚好将钱花完,将所有可能的情况打印出来。

main( )

{ int i,j,k;

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

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

{ k=100-i-j;

if(5*i+3*j+k/3.0==100.)

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

}

}

7.6 习题参考答案

一、选择题

1.A

2.A

3.C

4.D

5.C

6.B D

7.D

8.C 9D

10.B 11.A 12.C 13.B 14.B

二、程序分析题

1. 19

2. 3

3. 5 5 8

4. *****

*****

*****

*****

*****

5. 9

6. g.i=4142

g.s[0]=42 g.s[1]=41

g.s=1

三、填空题

1. k=I

2. strlen(str)-1

3. n%base

4. s[i]+=a[i][j]

5. scanf(“%s”,a)

四、程序设计题

1.输入10个整型数并存入一维数组,要求输出值和下标都为奇数的元素个数。

main()

{ int a[10],i,num=0;

printf("enter array a:\n");

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

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

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

if(i%2==1&&a[i]%2==1) num++;

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

}

2. 有5个学生,每个学生有四门课程,将有不及格课程的学生成绩输出。

main()

{ int a[5][4]={{78,87,93,65},{66,57,70,86},{69,99,76,76}, {78,59,87,90},

{90,67,97,87}};

int i,j,k;

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

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

if(a[i][j]<60)

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

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

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

printf("\n");

break;

}

}

3. 从键盘上输入一个字符串,统计字符串中的字符个数。不允许使用求字符串长度函数strlen( )。

#include "stdio.h"

main( )

{ char str[81],*p=str;

int num=0;

printf("input a string:\n");

gets(str);

while(*p++) num++;

printf("length=%d\n",num);

}

4.从给定数组中删除一个指定元素,该元素的值为13.

main()

{ int a[10];

int i,k;

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

a[i]=(i-1)*3+1;

printf(“before deleted\n”);

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

printf(“\n”);

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

if (a[k]==13) break;

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

a[i-1]=a[i];

printf(“after delected\n”);

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

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

printf(“\n”);

}

5.输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

#include "stdio.h"

main( )

{ char str[81],c,i;

int word,num=1;

gets(str);

for(i=0;(c=str[i])!='\0';i++)

if(c==' ')

word=0;

else if(word==0)

{word=1; num++;}

printf("There are %d words in the line.\n",num);

}

6.输入3个复数的实部和虚部放在一个结构体数组中,根据复数的模由小到大顺序对数组进行排序并输出。(注:复数的模=sqrt(实部*实部+虚部*虚部))

#include "math.h"

main( )

{ struct complex

{ float x;

float y;

float m;

}a[N],t;

int i,j,k;

for(i=0;i

{ scanf("%f%f",&a[i].x,&a[i].y); /*输入复数的实部和虚部*/

a[i].m=sqrt(a[i].x*a[i].x+ a[i].y*a[i].y); /*计算复数的模*/ }

for(i=0;i

{ k=i;

for(j=i+1;j

if(a[k].m

t=a[i];a[i]=a[k];a[k]=t;

}

for(i=0;i

printf("%f+%.2fi\n",a[i].x,a[i].y);

}

7.已知某年的元旦是星期几,打印该年某一月份的日历表。

#include "stdio.h"

typedef struct

{ int year,mon,day;

enum weekday{sun,mon,tue,wed,thu,fri,sat} week;

}daily;

main()

{ daily days;

printf("Which year?");scanf("%d",&days.year); /* 哪年日历*/

printf("year %4d,Month 1,day 1 is weekday?\n",days.year);

printf("0-Sun,1-Mon,2-Tue,3-Wed,4-Thu,5-Fri,6-Sat:");

scanf("%d",&days.week);

days.mon=days.day=1;

montable(days);

}

montable(daily d)

{ int i,s,ds; daily md;

md.year=d.year;md.day=1;

printf("Which month?");scanf("%d",&md.mon); /* 查看当年哪月日历表*/

for(s=0,i=1;i<=md.mon;i++)

{ switch(i)

{ case 1: case 3: case 5: case 7: case 8: case 10: case 12:ds=31;break;

case 2:ds=(md.year%4==0&&md.year%100!=0||md.year%400==0)?29:28;break;

case 4: case 6: case 9: case 11:ds=30;

}

s+=ds;

}

s-=ds;

md.week=(s+d.week)%7;

printf(" --==%4d Year,%2d Month==--\n",md.year,md.mon);

printf("......................................\n");

printf("%5s%5s%5s%5s%5s%5s%5s\n","Sun","Mon","Tue","Wed","Thu","Fri","Sat");

printf("......................................\n");

for(i=0;i

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

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

if(++md.week==7){ md.week=0;printf("\n");} /* 超过一周换行打印*/ }

if(md.week!=0) printf("\n");

printf("......................................\n");

}

8.7 习题参考答案

一、选择题

1.C

2.A

3.C

4.A

5.B

6.A

7.C

8.A

二、程序分析题

1. 4321

2. 2

3. 4

4. 100,30,10,101

5. 32

三、填空题

1. (1):sum+array[i] (2):average(score)

2. a[i][j]

3. (1):s1[i+j]=s2[j] (2):'\0'

4. (1): float area(float x) ; (2): area(r) (3):2*PI*x (4):return x1;

5. a[i+1]=x

四、程序设计题

1.写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。

#include"math.h"

main( )

{ int n;

scanf("%d",&n);

if(prime(n))

printf("\n %d is prime.",n);

else

printf("\n %dis not prime.",n);

}

int prime(int m) {

int f=1,i,k; k=sqrt(m) for(i=2;i<=k;i++) if(m%i==0) break; if(i>=k+1)f=1; else f=0; return f; }

2.编写函数计算,用主函数调用它。

float fun(int n) {

int i,f=1; float s=0,t; for(i=0;i<=n;i++) {

t=1.0/(2*i+1) s=s+f*t; f=-1*f; } return s; } main( ) {

int n;

scanf("%d",&n); printf("%f",fun(n)); }

3.将一个字符串中另一个字符串中出现的字符删除。

main( )

{ void fun(char a[ ],char b[ ]);

char s1[20]= "I am a boy. ", s2[20]= "You are a boy. ";

fun(s1,s2);

1

21

*)1(...7151311+-++-+-n n

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

}

void fun(char a[ ],char b[ ])

{ int i=0,j=0;

while(a[i]!= '\0')

{ while(b[j]!= '\0')

{if(a[i]== b[j])

{ for(j=i;a[j]=a[j+1];j++);

i--;

break;

}

j++;

}

i++;j=0;

}

}

4.用牛顿迭代法求根。方程为ax3+bx2+cx+d=0,系数a、b、c、d由主函数输入。求x 在1附近的一个实根。求出根后,由主函数输出。

#include"math.h"

float fun(float a, float b, float c, float d)

{ float x=1,x0,f,f1;

do

{ x0=x;

f=((a*x0+b)*x0+c)*x0+d;

f1=(3*a*x0+2*b)*x0+c;

x=x0-f/f1;

}while(fabs(x-x0)>=1e-5);

return(x);

}

main( )

{ float a,b,c,d;

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

printf("\nX=%10.7f\n",fun(a,b,c,d));

}

5.某班有5个学生,三门课。分别编写3个函数实现以下要求:

(1)求各门课的平均分;

(2)找出有两门以上不及格的学生,并输出其学号和不及格课程的成绩(3)找出三门课平均成绩在85-90分的学生,并输出其学号和姓名

主程序输入5个学生的成绩,然后调用上述函数输出结果。

#define SNUM 5

#define CNUM 3

#include”stdio.h”

#include

void DispScore(char num[][6],char name[][20],float score[][CNUM])

{ int i,j;

for(i=0;i

{ printf("%s",num[i]);

printf("%s",name[i]);

for(j=0;j

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

printf(" ");

}

}

void CalAver(float score[][CNUM])

{ float sum,aver;

int i,j;

for(i=0;i

{ sum=0;

for(j=0;j

sum=sum+score[j][i];

aver=sum/SNUM;

printf("Average score of course %d is %8.2f ",i+1,aver);

}

}

void FindNoPass(char num[][6],float score[][CNUM])

{ int i,j,n;

for(i=0;i

{ n=0;

for(j=0;j

if(score[i][j]<60)

n++;

if(n>=2)

{ printf("%s",num[i]);

for(j=0;j

if(score[i][j]<60)

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

printf(" ");

}

}

}

void FindGoodStud(char num[][6],char name[][20],float score[][CNUM]) { int i,j,n;

for(i=0;i

{ n=0;

for(j=0;j

if(score[i][j]>=85&&score[i][j]<=90) n++;

if(n==3) printf("%s %s ",num[i],name[i]);

}

}

void main()

{ char num[SNUM][6],name[SNUM][20];

float score[SNUM][CNUM];

int i,j;

for(i=0;i

{ printf(" Student%d number: ",i+1);

scanf("%s",num[i]);

printf(" Student%d name: ",i+1);

scanf("%s",name[i]);

printf(" Student%d three scores: ",i+1);

for(j=0;j

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

}

DispScore(num,name,score);

CalAver(score);

FindNoPass(num,score);

FindGoodStud(num,name,score);

}

9.9 习题参考答案

一、选择题

1.B

2.D

3.A

4.C

5.B

6.A

7.C

8.A

9.C 10.C 11.B 12.B 13.D

二、程序分析题

1.17 2.将输入的10个数据逆序输出.

3.3,3,3

4.如果p1指向的变量值大于p2指向的变量值,则p1、p2指向的变量值互换5.GFEDCBA 6.Cdefg 7. 7 1

8. name: zhang total=170.000000

name: wang total=150.000000

9. x=72 p->x=9 10.6

三、填空题

1.‘\0’ *ptr++ 2. a

3.*ch>=’a’&&*ch<=’z’4. *str2++=*str1++

5. max (*p)(a,b) 6. ‘\0‘ n++;

7. 8 8 8. ch==’ ’

四、程序设计题

1.通过调用函数,将任意四个实数由小到大的顺序输出。

#include “stdio.h”

void swap(float *x,float *y)

{ float z;

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

}

main( )

{ float a,b,c,d;

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

if(a>b)

swap(&a,&b);

if(a>c)

swap(&a,&c);

if(a>d)

swap(&a,&d);

if(b>c)

swap(&b,&c);

if(b>d)

swap(&b,&d);

if(c>d)

swap(&c,&d);

printf("After swap: a=%f,b=%f,c=%f,d=%f\n",a,b,c,d);

}

2.编写函数,计算一维数组中最小元素及其下标,数组以指针方式传递。

#include “stdio.h”

int minid(int a[],int n)

{ int i;int p=0;

for(i=1;i

if(a[i]

return p;

}

main()

{ int a[8]={15,2,3,-5,9,-3,11,8};

int p;

p=minid(a,8);

printf("min: %d\n",a[p]);

}

3.编写函数,由实参传来字符串,统计字符串中字母,数字,空格和其它字符的个数。主函数中输入字符串及输出上述结果。

#include “stdio.h”

void strnum(char *s,int *pa, int *pn, int *ps, int *pd)

{ *pa=*pn=*ps=*pd=0;

while(*s!=’\0’)

{ if(*s>=’a’&&*s<=’z’||*s>=’A’&&*s<=’Z’)

(*pa)++;

else if(*s>=’0’&&*s<=’9’)

(*pn)++;

else if(*s==’ ’)

(*ps)++;

else

(*pd)++;

s++;

}

}

main ( )

{ char line[81];int a,b,c,d;

gets(line);

strnum(line,&a,&b,&c,&d);

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

}

4.编写函数,把给定的4*4二维数组转置,即行列互换。

#include “stdio.h”

main( )

{ void zhuanzhi(int (*p)[4],int n);

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

int i,j;

zhuanzhi(a,4);

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

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

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

printf("\n");

}

}

void zhuanzhi(int (*p)[4],int n)

{ int i,j,t;

for(i=0;i

for(j=0;j

{ t=p[i][j];p[i][j]=p[j][i]; p[j][i]=t; }

}

5.编写函数,对输入的10个数据进行升序排序。

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

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 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)

本卷共有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语言选择题库答案

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() {

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语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#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分,共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语言考试题库之判断题

三、判断题(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

C语言选择题(含答案)

C语言选择题(含答案) 选择题 1.以下叙述正确的是_____。 A) 在C程序中,main函数必须位于程序的最前面。 B) C语言本身没有输入输出语句。 C) C程序的每行只能写一条语句。 D) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 2.下面四个选项中,均是不合法的用户标识符的选项是。 A) A B) float C) b-a D) _123 P_0 1a0 goto temp do _A int INT 3、下列四个选项中都是合法的转义字符的 A) ‘\’’‘\\’‘\n’B) ‘\’‘\017’‘\”’ C) ‘\018’‘\f’‘xab’D) ‘\\0’‘\101’‘x1f’ 4、设所有变量均为整型,则表达式z=(a=2,b=5,b++,a+b)的值是: A)7 B)8 C)6 D)2 5、若有代数式,则不正确的C语言表达式是: A) a/b/c*e*3 B) 3*a*e/b/c C) 3*a*e/b*c D) a*e/c/b*3 6、若希望当A的值为奇数时,表达式的值为”真”, A的值为偶数时,表达式的值为”假”。则以 下不能满足要求的表达式是_________。 A) A%2==1 B) !(A%2==0) C) !(A%2) D) A%2 7、以下程序的运行结果是 : main() { int m=6;

if(m++> 6) printf(" %d\n",m); e1se printf("%d\n",--m ); } A)4 B)5 C) 7 D) 6 8、当a=1,b=3,c=5,d=4,执行完下面一段程序后x 的值是 : if(a正确的输出结果为 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+y+z=35 D)不确定值 10、已知各变量的类型说明如下 int k,a,b; unsigned long w= 5; double x=1.42; 则以下不符合C语言语法的表达式是 : A) x%(-3) B) w+=-2

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语言考试题库

2012c语言全校模拟 一、单项选择 C1.sizeof(float)是()。 A、一个浮点表达式 B、一个不合法的表达式 C、运算结果是一个整型表达式。 D、一种函数调用 B2. 下列数据中属于"字符串常量"的是( )。 A、'A' B、"ABC" C、ABC D、'ABC' B3. 用下面的scanf函数输入数据,使得i=10,k=15选择正确的键盘输入方法( ). (用"[CR]"表示回车,U表示空格) main() {int i,k; scanf("i=%d,k=%d",&i,&k); } A4. 逻辑表达式3<2||-1&&4>3-!0的值为:( ) A、1 B、3 C、0 D、2 C5. 下列运算符中是C语言关系运算符的是()。 A、& B、~ C、!= D、! D6.语句while(!E);中的表达式!E等价于()。 A、E==1 B、E!=0 C、E!=1 D、E==0 A7.以下正确的描述是( ). A、只能在循环体内和switch语句内使用break语句 B、continue语句的作用是终止整个循环的执行 C、从多层嵌套的外层循环中退出时,只能使用goto语句 D、在循环体内使用break和continue语句的作用相同

B8. 下面各语句中,能正确进行赋字符串操作的语句是( ). A、char s1[5][ ]={"ABCDE"}; B、char s2[6]={'A','B','C','D','E'}; C、char st[ ][ ]={"ABCDE"}; D、char s[5]={'A','B','C','D','E'}; A9.若有说明: int a[3][4]={0};则下面正确的叙述是()。 A、数组a中每个元素均可得到初值0 B、只有元素a[0][0]可得到初值0 C、数组a中各元素都可得到初值,但其值不一定为0 D、此说明语句不正确 B10.若有说明int a[3][4];则a数组元素的非法引用是()。 A、a[1][3] B、a[0][4] C、a[0][2*1] D、a[4-2][0] D11.执行下面程序后,输出结果是()。 main() { inta,b,c; a=45,b=27,c=0; c=max(a,b); printf("%d\n",c); } int max(intx,int y) { int z; if(x>y) z=x; else z=y; return(z); } A、72 B、18 C、27 D、45 B12. 以下正确的描述是:在C语言程序中()。 A、函数的定义可以嵌套,但函数的调用不可以嵌套 B、函数的定义不可以嵌套,但函数的调用可以嵌套 C、函数的定义和函数的调用均可以嵌套 D、函数的定义和函数的调用均不可以嵌套 B13. 在C语言的函数中,下列正确的说法是()。 A、形参可以是常量和变量 B、可以有也可以没有形参

历年C语言考试题库及答案

C语言理论上机考试选择题部分(共200题,仅针对11级定向专业) 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); }

C语言题库及答案(选择题)

C语言题库(选择题) 1.C语言源程序的基本单位是()。 A.过程 B.函数 C.子程序 D.标识符 2.下列字符序列中,可用作C标识符的一组字符序列是()。 A. S.b,sum,average,_above B. class,day,lotus_1,2day C. #md,&12x,month,student_n! D. D56,r_1_2,name,_st_1 3.以下标识符中,不能作为合法的C用户定义标识符的是()。 A.a3_b3 B.void C._123 D.IF 4.以下数据中,不正确的数值或字符常量是()。 A.0 B.5L C.o13 D.9861 5.以下数值中,不正确的八进制数或十六进制数是()。 A.0x16 B.16 C.-16 D.0xaaaa 6.以下的选择中,正确的赋值语句是()。 A.a=1,b=2 B.j++ C.a=b=5; D.y=int(x) 7.以下运算符中,优先级最高的运算符是()。 A.?: B.++ C.&& D., 8.在C语言中,能代表逻辑值“真”的是()。 A.TRUE B.大于0的数 C.非0整数 D.非0的数 9.下列变量说明语句中,正确的是()。 A.char:a b c; B.char a;b;c; C.int x;z; D.int x,z; 10.下列字符序列中,不可用作C语言标识符的是()。 A.b70 B.#ab C.symbol D.a_1 11.以下不正确的叙述是()。 A.在C程序中所用的变量必须先定义后使用。 B.程序中,APH和aph是两个不同的变量。 C.若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变。 D.当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值。 12.以下标识符中,不能作为合法的C用户定义标识符的是()。 A.For B.Printf C.WORD D.sizeof 13.以下标识符中,不能作为合法的C用户定义标识符的是()。 A.answer B.to C.signed D._if 14.以下标识符中,不能作为合法的C用户定义标识符的是()。 A.putchar B._double C._123 D.INT 15.以下数据中,不正确的数值或字符常量是()。 A.8.9e1.2 B.10 C.0xff00 D.82.5 16.以下数据中,不正确的数值或字符常量是()。 A.c B.66 C.0xaa D.50 17.以下运算符中,优先级最高的运算符是()。

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 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。

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