c语言试题及答案Word格式文档下载.docx

上传人:b****8 文档编号:22580546 上传时间:2023-02-04 格式:DOCX 页数:55 大小:35.99KB
下载 相关 举报
c语言试题及答案Word格式文档下载.docx_第1页
第1页 / 共55页
c语言试题及答案Word格式文档下载.docx_第2页
第2页 / 共55页
c语言试题及答案Word格式文档下载.docx_第3页
第3页 / 共55页
c语言试题及答案Word格式文档下载.docx_第4页
第4页 / 共55页
c语言试题及答案Word格式文档下载.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

c语言试题及答案Word格式文档下载.docx

《c语言试题及答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c语言试题及答案Word格式文档下载.docx(55页珍藏版)》请在冰豆网上搜索。

c语言试题及答案Word格式文档下载.docx

inti,x[3][3]={1,2,3,4,5,6,7,8,9};

则下面语句for(i=0;

i<

3;

i++)printf("

%d"

x[i][2-i]);

  A.159  B.147  C.357  D.369

  8、读出以下语句的输出结果是()

  intx=10,y=10;

  printf(“%d%d\n”,x--,--y);

  A.1010  B.99  C.910  D.109

  9、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是()

  if(x++>

5)printf("

x);

elseprintf("

x--);

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

  10、设有如下定义:

char*aa[2]={"

abcd"

"

ABCD"

};

则以下说法中正确的是()

  A)aa数组成元素的值分别是"

和ABCD"

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

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

D)aa数组的两个元素中各自存放了字符'

a'

和'

A'

的地址

11、以下语句的输出结果是()

  inta=-1,b=4,k;

  k=(++a<

0)&

&

!

(b--<

=0);

%d,%d,%d\n"

k,a,b);

  A.1,0,4  B.1,0,3  C.0,0,3  D.0,0,4

  12、下列程序的输出结果是()

  char*p1="

*p2="

str[50]="

xyz"

;

  strcpy(str+2,strcat(p1+2,p2+1));

%s"

str);

  A.xyabcAB  B.abcABz  C.ABabcz  D.xycdBCD

  13、执行下面的程序后,a的值是()

  #defineSQR(X)X*X

  main()

  {inta=10,k=2,m=1;

  a/=SQR(k+m)/SQR(k+m);

a);

  A.10  B.1  C.9  D.0

  14、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i个元素的地址为()

  A.P+i*2  B.P+(i-1)*2  C.P+(i-1)  D.P+i

  15、下列程序执行后输出的结果是()

  intd=1;

  fun(intp)

  {intd=5;

  d+=p++;

%d,"

d);

  {inta=3;

  fun(a);

  d+=a++;

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

16、表达式:

10!

=9的值是()

  A.true  B.非零值  C.0  D.1

  17、若有说明:

inti,j=7,*p=&

i;

则与i=j;

等价的语句是()

  A.i=*p;

  B.*p=*&

j;

  C.i=&

  D.i=**p;

  18、不能把字符串:

Hello!

赋给数组b的语句是()

  A.charb[10]={'

H'

'

e'

l'

o'

'

  B.charb[10];

b="

"

  C.charb[10];

strcpy(b,"

);

 D.charb[10]="

  19、在C程序中有如下语句:

char*func(intx,inty);

它是()

  A.对函数func的定义。

  B.对函数func的调用。

  C.对函数func的原型说明。

  D.不合法的。

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

  charstr[15]=”hello!

”;

  printf(“%d\n”,strlen(str));

  A.15  B.14  C.7  D.6

三、阅读程序题

  1、intx=6,y=7;

  printf(“%d,”,x++);

printf(“%d\n”,++y);

  程序的输出结果是__________。

  2、floatf=3.1415927;

  printf(“%f,%5.4f,%3.3f”,f,f,f);

  则程序的输出结果是__________。

  3、a=3;

  a+=(a<

1)?

a:

1;

printf(“%d”,a);

  结果是__________。

  4、main()

  {inta[5]={2,4,6,8,10},*P,**k;

  p=a;

k=&

p;

*(p++));

**k);

  5、main()

  {inta,b;

  for(a=1,b=1;

a<

=100;

a++)

  {if(b>

=20)break;

  if(b%3==1)

  {b+=3;

continue;

  b-=5;

}}

  程序的输出结果a的值为__________。

  四、程序填空题

  1、求主次对角线之和。

  {staticinta[][3]={9,7,5,1,2,4,6,8};

  intI,j,s1=0,s2=0;

  for(I=0;

I<

I++)

  for(j=0;

j<

j++)

  {if(__________)

  s1=s1+a[I][j];

  if(__________)

  s2=s2+a[I][j];

  }

  printf(“%d\n%d\n”,s1,s2);

  2、从键盘上输入10个数,求其平均值。

  {inti;

  floatf,sum;

  for(i=1,sum=0.0;

11;

i++)

  {__________;

  __________;

  printf(“average=%f\n”,sum/10);

3、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。

  #include

  {

  FILE*fp;

  charc;

  fp=__________;

  do

  c=getchar();

  fputs(c,fp);

  }while(c!

=EOF);

  __________;

;

  五、编程题

  1、三个整数a、b、c,由键盘输入,输出其中最大的数。

  2、从键盘输入的10个整数中,找出第一个能被7整除的数。

若找到,打印此数后退出循环;

若未找到,打印“notexist”。

  3、有一个一维数组,内放10个学生成绩,写一个函数,求出平均分。

  4、有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。

参考答案

  一、填空题

  1、int,2个字节,-32768~+32767。

  2、整型、实型、字符型。

  3、-4。

  4、结构体的成员占有各自不同的空间,而共用体的各成员放到同一存储空间。

  5、a=1,b=3,c=2

  7、”a”是字符串常量,而’a’是字符常量。

  8、7,1。

  二、选择题

  1、B2、C3、D4、C5、C

  6、D7、C8、D9、C10、D

  11、D12、D13、B14、B15、A

  16、D17、B18、B19、C20、D

  三、阅读程序题

  

(1)6,8

(2)3.141593,3.1416,3.142(3)4(4)2,4(5)8

  四、程序填空题

  1、I==jI+j==22、scanf(“%f”,&

f);

sum+=f;

  3、fopen(“myfile”,w)fclose(fp);

  五、编程题

  1、main()

  {inta,b,c;

  printf(“请输入三个整数:

”);

scanf(“%d,%d,%d”,&

  if(aif(belseprintf(“max=%d\n”,b);

  elseif(aelseprintf(“max=%d\n”,a);

  2、#include”stdio.h”

  {intI,a;

  for(I=1;

=10;

  {scanf(“%d”,&

a);

  {if(a%7==0)

  printf(“%d”,a);

break;

  if(I==11)

  printf(“notexist”);

  3、floataverage(floatarray[],intn)

  {intI;

  floataver,sum=array[0];

Isum=sum+array[I];

  aver=sum/n;

  return(aver);

  {floatave,score[10];

  intI;

10;

  scanf("

%f"

&

score[I]);

  ave=average(score,10);

%f\n"

ave);

  4、#include"

stdio.h"

  #defineN3

  structstudent

  {longstu_num;

  charsex;

  charname[15];

  intscore[4];

  floataverage;

};

  {intI,j,index;

  floatsum,max;

  structstudentstuarr[N];

I{printf("

pleaseinput%dstudentinformation:

\n"

I+1);

%ld,%c,%s"

stuarr[I].stu_num,&

stuarr[I].sex,stuarr[I].name);

4;

stuarr[I].score[j]);

I{sum=0.0;

  sum+=stuarr[I].score[j];

  stuarr[I].average=sum/4.0;

  max=stuarr[0].average;

  index=0;

Iif(stuarr[I].average>

max)

  {max=stuarr[I].average;

index=I;

总平均成绩最高的学生信息是学号=%ld,性别=%c,姓名=%s,平均成绩=%4.1f\n"

stuarr[index].stu_num,stuarr[index].sex,stuarr[index].name,stuarr[index].average);

一、选择题(1—14每题1分,15-18每题1.5分,共20分)

  1.可选作用户标识符的一组标识符是()

  AvoidBc5_b8CForD3a

  Define_53-abDO

  WORDIFCaseint

  2.在C语言中,非法的八进制是:

()

  A.018

  B.016

  C.017

  D.0257

  3.在TC中,基本inta[4]类型变量所占的字节数是()

  A.1

  B.2

  C.4

  D.8

  4.设x,y,z,k都是int型变量,则执行表达式:

x=(y=4,z=16,k=32)后,x的值为()

  A.4

  B.16

  C.32

  D.52

  5.设int型变量a为5,使b不为2的表达式是()

  A.b=a/2

  B.b=6-(-a)

  C.b=a%2

  D.b=a>

3?

2:

1

  6.一个C程序的执行是从()

  A.main()函数开始,直到main()函数结束。

  B.第一个函数开始,最后一个函数结束。

  C.第一个语句开始,最后一个语句结束。

  D.main()函数开始,直到最后一个函数。

  7.C语言中用于结构化程序设计的三种基本结构是()

  A.if、switch、break

  B.ifwhilefor

  C.whiledo-whilefor

  D.顺序结构、选择结构、循环结构

  8.以下叙述中不正确的是()

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

  B.函数中的形式参数是局部变量。

  C.在一个函数内的符合语句中定义变量在本函数范围内有效。

  D.在一个函数内定义的变量只在本函数范围内有效。

  9.若k为int类型,且k的值为3,执行语句k+=k-=k*k后,k的值为()

  A.-3

  B.6

  C.-9

  D.-12

  10.有以下程序

  {intx=3,y=3,z=3;

  printf(“%d%d\n”(++x,y++),++z);

}输出结果()

  A.33

  B.34

  C.42

  D.43

  11.若有定义和语句:

inta=21,b=021;

printf(“%x,%d\n”,a,b);

输出结果()

  A.17,15

  B.16,18

  C.17,19

  D.15,17

  12.已有定义语句:

intx=3,y=4,z=5;

则值为0的表达式是()

  A.x>

y++

  B.x<

=++y

  C.x!

=y+z>

y-z

  D.y%z>

=y-z

  13.能正确表达逻辑关系“a≥10或a≤0”的C语言表达式是()

  A.a>

=10ora<

=0

  B.a>

=10||a<

  C.a>

=10&

  D.a>

=10|a<

  14.n为整型常量,且n=2;

while(n--);

printf(“%d”,n);

执行后的结果是:

  A.2

  B.1

  C.-1

  D.0

  15.若有以下定义和赋值double*q,a=5.5;

int*p,i=1;

double*q,a=5.5;

int*p,i=1;

p=&

q=&

a;

以下对赋值语句叙述错误的是()。

  A)*p=*q变i中的值。

  B)p=oxffd0;

将改变p的值,使p指向地址为ffd0的存储单元。

  C)*q=*p;

等同于a=i;

  D)*p=*q;

是取q所指变量的值放在p所指的存储单元

  16.若有以下定义语句doublea[8],*p=a;

inti=5;

对数组元素错误的引用是()

  A)*a

  B)*a[5]

  C)*(p+i)

  D)p[8]

  17.以下选项中不能使指针正确指向字符串的是()

  A)char*ch;

*ch=“hello”

  B)char*ch=“hello”

  C)char*ch=“hello”;

ch=“bye”

  D)char*ch”;

ch=“hello”

  18.若有以下说明和定义语句:

unionuti{intn;

doubleg;

charch[9];

}

  structsrt{floatxy;

unionutiuv;

}aa;

则变量aa所占内存的字节数是()

  A)9

  B)8

  C)13

  D)17

二、填空题(每空1分,共12分)

  1.C语言源程序文件的扩展名是

(1),经过编译后,生成文件的扩展名是

(2),经过连接后,生成文件的扩展名是(3)。

  2.把a,b定义成长整型变量的定义语句是(4)

  3.设x和y均为整型变量,且x=3,y=2,则1.0*x/y表达式的值为(5)

  4.已有定义:

floatx=5.5;

则表达式:

x=(int)x+2的值为(6)

  5.已有定义:

intx=0,y=0;

(x+=2,y=x+3/2,y+5)后,变量x的值为(7),变量y的值为(8),表达式的值为(9)。

  6.执行以下for(i=1;

i++<

=5)语句后,变量i的值为(10)。

  7.数组是表示类型相同的数据,而结构体则是若干(11)数据项的集合。

  8.C语言中文件是指(12)。

  三、程序补充题(每空3分,共24分)

  1.从键盘上输入若干个学生成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。

  {floats,gmax,gmin;

  scanf(“%f,”&

s);

  gmax=s;

gmin=s;

  while

(1)

  {if(s>

gmax)gmax=s;

  if

(2)gmin=s;

  scanf(“%f”,&

  printf(“gmax=%f\ngmin=%f\n”gmax,gmin);

  2.求任意两个正整数的最大公约数和最小公倍数

  #include“stdio.h”

  {intr,m,n,temp,gcd,lcm;

  printf(“entertwonumberplease:

  scanf(“(3)”,&

m,&

n);

  lcm=m*n;

  while(m%n!

=0)

  {r=m%n;

(4);

n=r;

  gcd=n;

lcm=lcm/n;

  printf(“gcd=%d\nlcm=%d\n”,gcd,lcm);

  3.求y的x次方。

  Doublefun1(doubley,intx)

  main(){inti;

  doublez=1.0;

  for(i=1;

i(5);

  z=(6);

  returnz;

  4.对输入一个整数进行判断,若是偶数,输出even,否则输出odd,在子函数fun2功能是判定整数是否为偶数,若是偶数,返回1,否则返回0。

  intfun2(intx)

  {if(x%2==0)(7);

  return0;

  {intn;

  scanf(“%d”,&

  if(8)printf(“even\n”);

  elseprintf(“odd\n”);

四、按格式写出程序运行结果。

(每题4分共20分)

  1.main()

  {inta=1,c=65,d=97;

  printf(“a8=%o,a16=%x\n”,a,a);

  printf(“c10=%d,c8=%o,c16=%x,cc=%c\n”c,c,c,c);

  d++;

  printf(“d10=%d,dc=%c\n”d,d);

  程序运行结果为:

  2.有以下程序

  voidf(intx,inty)

  {intt;

  if(x<

p>

  {inta=4,b=3;

c=5;

  f(a,b);

f(a,c);

f(b,c);

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

}执行后的结果是:

  3.程序执行的结果是()

  {inti=0,a=2;

  if(i==0)printf(“**”);

  elseprintf(“$$”);

  printf(“*”);

  4.有以下程序

  {intsum=0,n;

  while(n<

=5)

  {sum+=n;

  n++

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1