最新C语言程序设计期末考试试题3套资料.docx

上传人:b****7 文档编号:9918846 上传时间:2023-02-07 格式:DOCX 页数:31 大小:35.85KB
下载 相关 举报
最新C语言程序设计期末考试试题3套资料.docx_第1页
第1页 / 共31页
最新C语言程序设计期末考试试题3套资料.docx_第2页
第2页 / 共31页
最新C语言程序设计期末考试试题3套资料.docx_第3页
第3页 / 共31页
最新C语言程序设计期末考试试题3套资料.docx_第4页
第4页 / 共31页
最新C语言程序设计期末考试试题3套资料.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

最新C语言程序设计期末考试试题3套资料.docx

《最新C语言程序设计期末考试试题3套资料.docx》由会员分享,可在线阅读,更多相关《最新C语言程序设计期末考试试题3套资料.docx(31页珍藏版)》请在冰豆网上搜索。

最新C语言程序设计期末考试试题3套资料.docx

最新C语言程序设计期末考试试题3套资料

C语言程序设计

期末考试试题及其答案

一、单项选择题(本大题共20题,每题2分,共40分)

  1、以下不是C语言的特点的是()

  A、C语言简洁、紧凑

  B、能够编制出功能复杂的程序

  C、C语言可以直接对硬件进行操作

  D、C语言移植性好

  2、以下不正确的C语言标识符是()

  A、ABCB、abcC、a_bcD、ab.c

  3、一个C语言程序是由()

  A、一个主程序和若干子程序组成

  B、函数组成

  C、若干过程组成

  D、若干子程序组成

  4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是()

  A、有零个或多个输入

  B、有零个或多个输出

  C、有穷性

  D、可行性

  5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为()

  A、intB、floatC、doubleD、不确定

  6、在C语言中,char型数据在内存中的存储形式是()

  A、补码B、反码C、源码D、ASCII码

  7、有如下程序,输入数据:

12345M678<cR>后(表示回车),x的值是()。

  #include

  main(){

  intx;

  floaty;

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

  }

  A、12345B、123C、45D、345

  8、若有以下定义inta,b;floatx,则正确的赋值语句是()

  A、a=1,b=2

  B、b++;

  C、a=b=5

  D、b=int(x);

  9、以下程序的执行结果是()

  #include

  {

  inti=10,j=10;

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

  }

  A、11,10B、9,10C、11,9D、10,910、巳知字母A的ASCII码是65,以下程序的执行结果是()

  #include

  main()

  {

  charc1='A',c2='Y';

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

  A、A,YB、65,65C、65,90D、65,89

  11、下列运算符中优先级最高的是()

  A、<B、十C、%D、!

  12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是()。

  A、’x’&&’y’

  B、x<=y

  C、x||y+z&&y-z

  D、!

((x<y)&&!

z||1)

  13、判断char型变量cl是否为小写字母的正确表达式为()

  A、’a’<=c1<=f’z’B、(c1>=a)&&(c1<=z)

  C、(‘a’>=c1)(‘z’<=c1)D、(c1>=’a’)&&(c1<=’z’)

  14、字符串"a"在内存中占据的字节个数为()

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

  15、下面有关for循环的正确描述是()

  A、for循环只能用于循环次数已经确定的情况

  B、for循环是先执行循环体语句,后判定表达式

  C、在for循环中,不能用break语句跳出循环体

  D、for循环体语句中,可以包含多条语句,但要用花括号括起来

  16、下面程序的运行结果是()

  #include

  main()

  {intnum=0;

  while(num<=2)

  {num++;

  printf(“%d,num);

  }

  }

  A、1

  B、12

  C、123

  D、1234

  17、以下描述正确的是()

  A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。

  B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。

  C、在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。

  D、do-while循环中,根据情况可以省略while。

  18、以下对一维整形数组a的正确说明是()

  A、inta(10);B、intn=10,a[n];

  C、intn;D、inta[10];

  scanf(“%d”,&n);

  inta[n];

  19、以下对二维数组a的正确说明是()

  A、inta[3][];B、floata(3,4);

  C、doublea[1][4];D、floata(3)(4);

  20、若二维数组a有m列,则在a[j]前面的元素个数为()

  A、j*m+i

  B、i*m+j

  C、i*m+j-1

  D、i*m+j+1

  二、填空题(本大题共10空,每空2分,共20分)

  1、结构化设计中的三种基本结构是___________________

  2、在C语言中的实型变量分为两种类型,它们是________和_________

  3、当a=5,b=4,c=2时,表达式a>b!

=c的值是_______

  4、下列程序运行后的输出结果是_____________

  #include

  main()

  {

  inti,j;

  for(i=4;i>=1;i--)

  {printf("*");

  for(j=1;j<=4-i;j++)

  printf("*");

  printf("\n");

  }

  5、若有定义:

inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是___________a[2][1]得到的初值是________________

  6、在C语言中,二维数组元素的内存中的存放顺序是_______________

  三、程序分析题(本大题共2题,每题4分,共8分,描述程序功能并写出程序执行结果)

  1、#include

  main()

  {inta,s,n,count;

  a=2;s=0;n=1;count=1;

  while(count<=7){n=n*a;s=s+n;++count;}

  printf(“s=%d”,s);

  }

  2、#include

  main()

  {inta=[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;

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

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

  if(i==j)sum=sum+a[j];

  printf(“sum=%d\n”,sum);

  }

  四、编程题(本大题共4题,每题8分,共32分)

  1、编写摄氏温度、华氏温度转换程序。

要求:

从键盘输入一个摄氏温度,屏幕就显示对应的华氏温度,输出取两位小数。

转换公式:

F=(C+32)×9/5。

  2、试编程判断输入的正整数是否既是5又是7的正倍数。

若是,则输出yes;否则输出no。

  3、判断数m是否为素数(只能被1和它本身整除的整数)?

  4、对15个数进行排序,按从小到大的顺序输出。

  《C语言程序设计》期末考试试卷(A卷)评分标准及标准答案

  一、单项选择题(本大题共20题,每题2分,共40分)

  1、B2、D3、B4、B5、C

  6、D7、B8、B9、A10、D

  11、C12、D13、D14、C15、D

  16、C17、C18、D19、C20、B

  二、填空题(本大题共10空,每空2分,共20分)

  1、顺序结构分支结构循环结构

  2、单精度型(或:

float型)双精度型(或;double型]

  3、1

  4、*

  **

  ***

  ****

  5、06

  6、按行主顺序存放

  三、程序分析题(本大题共2题,每题4分,共8分)

  能正确表达出题目的含义、要求,即可得分,部分正确可按比例得分,否则不得分。

  1、功能:

求S=0+2+4+8+16+32+64+128和。

  输出结果:

s=254

  2、功能:

出矩形阵a的主对角线上的元素之和。

  输出结果:

27

  四、编程题(本大题共4题,每题8分,共32分)

  能正确表达出题目的含义、要求,且格式正确,即可得满分,不要求形式完全相同。

部分正确可按比例得分,否则不得分。

  1、#include

  main()

  {floatc,f;

  printf("inputc:

");…………………………………………….2分

  scanf("%f",&c);…………………………………………….2分

  f=(c+32.0)*9.0/5.0;…………………………………………….2分

  printf("F=%.2f\n",f);…………………………………………….2分

  }

  2、#include

  main()

  {intx;

  scanf("%d",&x);…………………………………………….2分

  if(x%5==0&&x%7==0)…………………………………………….2分

  printf("yes");…………………………………………….2分

  else

  printf("no");…………………………………………….2分

  }

  3、#include

  #include

  main()

  {intm,i,k;

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

  k=sqrt(m);…………………………………………….2分

  for(i=2;i<=k;i++)…………………………………………….2分

  {if(m%i==0)

  break;…………………………………………….2分

  }

  if(i>k)

  printf("misaprimenumber!

\n");…………………………………………….2分

  }

  4、#include

  main()

  {inti,j,a[15],t;

  printf("input15numbers:

\n");

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

  scanf("%d",&a);…………………………………………….2分

  for(j=0;j<15;j++)…………………………………………….2分

  for(i=0;i<15-j;i++)…………………………………………….2分

  if(a[i]>a[i+1])

  {t=a[i];a[i]=a[i+1];a[i+1]=t;}…………………………………………….2分

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

printf("%6d",a)

 

C语言期末考试试卷

一单项选择题(每题2分,共40分)

1以下叙述正确的是。

AC程序基本组成单位是语句B简单C语句必须以分号作为结束符

CC程序每一行只能写一个语句D注释语句可以嵌套

2设a和b均为int型变量,则执行以下语句后的输出为。

inta=20;intb=3;printf("%d\n",a+=(b%=2));

A0B20C21D22

3设int型占2个字节,且inti=-2;,则语句printf("%u",i);的输出结果为。

A-2B-32768C65535D65534

4以下程序运行后的输出结果是。

main()

{doubled=3.2;intx,y;

x=1.2;y=(x+3.8)/5.0;

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

}

A0B3C3.07D3.2

5以下程序运行后的输出结果是。

main()

{inta=2,b=-1,c=2;

if(a

if(b<0)c=0;

elsec++;

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

}

A0B1C2D3

6以下程序的执行结果是。

main()

{intn=9;

while(n>6){n--;printf("%d",n);}

}

A987B9876C8765D876

7以下程序运行后的输出结果是。

voidmain()

{intx=15,y=21,z=0;

switch(x/8)

{case2:

z=z+1;break;

case1:

z=z+1;

switch(y/21)

{default:

z=z+1;

case0:

z=z+1;break;

}

}

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

}

A4B3C2D1

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

main()

{

inti=0,a=0;

while(i<20)

{for(;;)

if((i%10)==0)break;

elsei--;

i+=11;

a+=i;

}

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

}

A11B21C32D33

9以下程序执行后的输出结果是。

main()

{

intx=1,y=1;

while(y<=5)

{if(x>=10)break;

if(x%2==0)

{x+=5;

continue;

}

x-=3;y++;

}

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

}

A6,6B7,6C10,3D7,3

10以下程序运行后的输出结果是。

voidmain()

{inta,b;

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

{if(b>=10)break;

if(b%3==1)

{b=b+3;continue;};

}

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

}

A3B4C5D101

11以下程序的输出结果是。

main()

{inti,k,a[10],p[3];

k=5;

for(i=0;i<10;i++)a[i]=i;

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

for(i=0;i<3;i++)k+=p[i]*2;

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

}

A20B21C22D23

12若运行以下程序时输入:

246<回车>,则输出结果是___。

main()

{intx[3][2]={0},i;

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

printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);

}

A200B204C240D246

13以下程序运行后的输出结果是。

voidreverse(inta[],intn)

{inti,t;

for(i=0;i

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

}

main()

{

intb[10]={1,2,3,4,5,6,7,8,9,10},i,s=0;

reverse(b,8);

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

s+=b[i];

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

}

A22B10C34D30

14以下程序运行后的输出结果是。

main()

{chara[2][4];

strcpy(a,"you");strcpy(a[1],"me");

a[0][3]='&';

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

}

AyouByou&CmeDyou&me

15调用函数的实参与被调用函数的形参应有如下关系。

A只要求实参与形参个数相等B只要求实参与形参顺序相同

C只要求实参与形参数据类型相同D上述三点均需具备

16以下程序运行后的输出结果是。

longfun(intn)

{longs;

if(n==1||n==2)s=2;

elses=n-fun(n-1);

returns;

}

main()

{

printf("%ld\n",fun(3));

}

A1B2C3D4

17以下程序运行后的输出结果是。

voidmain()

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

for(i=0;i<4;i+=2)printf("%d",p[i]);

}

A51B52C53D97

18已知下列说明语句,则表达式**(q+2)的值是。

staticinta[]={2,4,6,8}

staticint*p[]={a,a+1,a+2,a+3};

int**q;

q=p;

A2B4C6D8

19有以下说明语句,对结构变量中成员age的正确引用是。

structstudent

{intage;

intsex;

}stud1,*p;

Ap->ageBstudent.ageC*p.ageDstud1.student.age

20以下程序运行后的输出结果是。

#include

voidfun(char*fname,char*st)

{FILE*myf;inti;

myf=fopen(fname,"w");

for(i=0;i

fclose(myf);

}

main()

{fun("test.txt","newworld");

fun("test.txt","hello,");

}

Anewworldhello,Bhello,rldCnewworldDhello,

 

二填空题(每题3分,共30分)

1下面的程序运行时从键盘上输入9876543210<回车>,程序的输出结果是。

main()

{

inta;

floatb,c;

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

printf("a=%d,b=%.1f,c=%.0f",a,b,c);

}

2若输入字符串:

abcde<回车>,则以下while循环体将执行次。

while((ch=getchar())=='e')printf("*");

3下列程序的输出结果是。

main()

{ints,i;

for(s=0,i=1;i<3;i++,s+=i);

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

}

4若int类型变量占两个字节,定义intx[10]={0,2,4};,则数组x在内存中所占的字节数是。

5以下程序的输出结果是。

main()

{

intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=0;

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

for(j=i;j<=i;j++)t=t+b[j][j];

printf("%d",t);

}

6以下程序的输出结果是。

main()

{charch[]="abc",x[3][4];inti;

for(i=0;i<3;i++)strcpy(x[i],ch);

for(i=0;i<3;i++)printf("%s",&x[i][i]);

printf("\n");

}

7运行下面程序,其输出结果是。

#include

intx,y;

one()

{inta,b;

a=25,b=10;

x=a-b;y=a+b;

}

main()

{inta=9,b=5;

x=a+b;y=a-b;

one();

printf("%d,%d\n",x,y):

}

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

voidfun(intx,inty)

{x=x+y;y=x-y;x=x-y;

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

}

main()

{intx=2,y=3;

fun(x,y);

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

}

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

voidprint(intw)

{inti;

if(w!

=0)

{print(w-1);

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

printf("%d",w);

printf("\n");

}

}

main()

{print(4);}

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

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=2,j=5,*p=&i,*q=&j;

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

}

 

三程序填空题(每空3分,共30分)

1以下程序的功能是从键盘输入若干个学生的成绩,统计最高成绩和最低成绩,当输入为负数时,结束输入。

请填空使程序完整。

main()

{floatx,max,min;

scanf("%f",&x);

max=min=【1】;

do{if(x>max)max=x;

if(x

scanf("%f",&x);

}while(【3】);

printf("%f,%f",max,min);

}

2以下程序的功能是:

将t数组的内容连接到s数组内容的后面,使s数组保存连接后的新字符串。

请填空使程序完整。

main()

{staticchars[30]="abcdefg",t[]="abcd";inti=0,j=0;

while(s[i]!

='\0')【4】;

while(t[j]!

='\0'){s[i+j]=t[j];j++;}

【5】;

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

}

3下面函数的功能是统计子串substr在母串str中出现的次数,请填空使程序完整。

intcount(char*

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

当前位置:首页 > 高等教育 > 文学

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

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