中国石油大学华东第二学期期末试题《C语言》综合复习.docx

上传人:b****7 文档编号:9026291 上传时间:2023-02-02 格式:DOCX 页数:22 大小:28.08KB
下载 相关 举报
中国石油大学华东第二学期期末试题《C语言》综合复习.docx_第1页
第1页 / 共22页
中国石油大学华东第二学期期末试题《C语言》综合复习.docx_第2页
第2页 / 共22页
中国石油大学华东第二学期期末试题《C语言》综合复习.docx_第3页
第3页 / 共22页
中国石油大学华东第二学期期末试题《C语言》综合复习.docx_第4页
第4页 / 共22页
中国石油大学华东第二学期期末试题《C语言》综合复习.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

中国石油大学华东第二学期期末试题《C语言》综合复习.docx

《中国石油大学华东第二学期期末试题《C语言》综合复习.docx》由会员分享,可在线阅读,更多相关《中国石油大学华东第二学期期末试题《C语言》综合复习.docx(22页珍藏版)》请在冰豆网上搜索。

中国石油大学华东第二学期期末试题《C语言》综合复习.docx

中国石油大学华东第二学期期末试题《C语言》综合复习

C语言综合复习资料

一、单选题

C1.C语言中基本数据类型有

A)整型、实型、逻辑型B)整型、字符型、逻辑型

C)整型、实型、字符型D)整型、实型、字符型、逻辑型

D2.在C语言中,数字029是一个

A)八进制数B)十进制数C)十六进制数D)非法数

A3.在以下关于C语言的不严格的叙述中,错误的说法是

A)在标识符中,大写字母和小些字母的意义相同

B)有些不同类型的变量可以在一个表达式中运算

C)在赋值表达式中等号“=”左边的变量和右边的值可以是不同类型

D)同一个运算符号在不同的场合可以有不同的含义

A4.已知inta=4,b=5;,这执行表达式a=a>b后,变量a的值为

A)0B)1C)4D)5

D5.设有定义inta=3,b=4,c=5;,则以下表达式中,值为0的表达式是

A)a&&bB)a<=bC)a||b+c&&b-cD)!

((a

c||1)

D6.以下不合法的赋值语句是

A)x=(1,y=2);B)++x;C)x=y=15;D)y=int(x);

D7.已定义c为字符型变量,则下列语句中正确的是

A)c='97';B)c="97";C)c="a";D)c=97;

D8.能将高级语言编写的源程序转换为目标程序的软件是

A)汇编程序B)编辑程序C)解释程序D)编译程序

D9.设有定义char*p=“abcde\0fghjik\0”;则printf(“%d\n”,strlen(p));输出结果是

A)12B)15C)6D)5

C10.以下选项中合法的实型常数是

A)5E2.0B)E-3C).2E0D)1.3E

C11.以下非法的赋值语句是

A)n=(i=2,++i);B)j++;C)++(i+1);D)x=j>0;

D12.已定义c为字符型变量,则下列正确的赋值语句是

A)c='66';B)c="66";C)c="B";D)c=66;

A13.设a=3,b=4,c=-5,则逻辑表达式:

a||b+c&&b==c的值是

A)1B)0C)非0D)语法错

C14.以下能正确定义数组并正确赋初值的语句是

A)intN=5,b[N][N];B)inta[1][2]={{1},{3}};

C)intc[2][]={{1,2},{3,4}};D)intd[3][2]={{1,2},{34}};

A15.结构化程序设计的三种基本结构是

A)顺序结构、选择结构、循环结构B)if、switch、break

C)for、while、do-whileD)if、for、continue

B16.在一个C程序中

A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现

C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置

C17.以下合法的字符常量是

A)‘\084’B)‘ab’C)‘\x43’D)“\0”

C18.用8位无符号二进制数能表示的最大十进制数为

A)127B)128C)255D)256

D19.设有定义:

intx=0,y=1,z=1;则运行表达式:

x=y++>z--后,x,y,z的值分别是

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

A20.设有intx=11;则表达式(x++*1/3)的值是

A)3B)4C)11D)12

D21.若有:

intx=1,n=5;则执行语句x%=(n%2)后,x的值为

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

B22.结构化程序的3种基本控制结构是

A)if-else结构、while结构、for结构B)顺序结构、分支机构、循环结构

C)while结构、do-while结构、for结构D)以上三种都不对

C23.下面程序段的输出结果是

intk=11;

printf(“%d,%o,%x”,k,k,k);

A)11,12,11B)11,13,13C)11,013,0xbD)11,13,b

B24.在微型计算机系统中,存储一个汉字的国标码所需要的字节数是

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

C25.以下非法的赋值语句是

A)n=(i=2,++i);B)j++;C)++(i+1);D)x=j>0;

C26.语句:

printf("%d",(a=2)&&(b=-2));的输出结果是

A)无输出B)结果不确定C)1D)2

C27.设有定义语句:

charstr[][20]={"Hello","Beijing"},*p=str;

则printf("%d\n",strlen(p+20));输出结果是

A)0B)5C)7D)20

B28.以下选项中,与k=++n完全等价的表达式是

A)k=n,n=n+1B)n=n+1,k=nC)k=++nD)k+=n+1

二、读程序,写出程序执行结果

1.#include

voidmain()

{inta=10,b=0;

if(a==12)

{a++;b++;}

else

{a=a+3;b=b+3;}

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

}

答:

13,3

2.#include

voidmain()

{ints,i;

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

printf(“%d\n”,s);

}

答:

14

3.#include“stdio.h”

voidmain()

{charn=‘c’;

switch(n++)

{default:

printf(“error!

”);break;

case‘a’:

case‘A’:

case‘b’:

case‘B’:

printf(“good!

”);break;

case‘c’:

case‘C’:

printf(“pass!

”);

case‘d’:

case‘D’:

printf(“warm!

”);

}

}

答:

pass!

warm!

4.#include

voidmain()

{intk=4,n=0;

for(;n

{n++;

if(n%3!

=0)continue;

k--;

}

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

}

答:

3,3

5.#include

intf(intb[],intm,intn)

{inti,s=0;

for(i=m;i<=n;i+=2)s+=b[i];

returns;

}

voidmain()

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

x=f(a,3,8);

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

}

答:

18

6.#include

voidcopy_str(charfrom[],charto[])

{intk=0;

while(from[k]!

=‘\0’)

{to[k]=from[k];k++;}

to[k]=‘\0’;/*末尾加上串结束标志*/

}

voidmain()

{charstr1[80]=”red”,str2[80]=”green”;

copy_str(str1,str2);

puts(str2);

}

答:

red

7.#include

intd=1;

voidfun(intp)

{intd=5;

d+=p++;

printf(“%d”,d);

}

voidmain()

{inta=3;

fun(a);d+=a++;

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

}

答:

84

8.#include

voidmain()

{inti,j;

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

{

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

printf("*");

printf("\n");

}

}

答:

(空行)

(空行)

*

**

9.#include

voidmain()

{inti;

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

switch(i)

{case1:

printf("%d",i);

case2:

printf("%d",i);

default:

printf("%d",i);

}

}

答:

011122

10.#include

intws(intx)

{if(x/100>0)

return(3);

elseif(x/10>0)

return

(2);

else

return

(1);

}

voidmain()

{inta=123;

printf("%d是%d位数\n",a,ws(a));

}

答:

123是3位数

11.#include

#include

voidmain()

{chara[10]="abc";

charb[]="defg";

puts(a);

puts(b);

puts(strcat(a,b));

}

答:

(空行)

abc

defg

abcdefg

12.#include

voidmain()

{inti,n[]={1,2,3,4,5};

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

{n[i]=n[4-i]+1;

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

}

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

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

}

答:

6565345

13.#include

voidmain()

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

inti,j,row=0,colum=0,max;

max=a[0][0];

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

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

if(a[i][j]>max)

{max=a[i][j];

row=i;

colum=j;

}

printf("max=%d,row=%d,colum=%d",max,row,colum);

}

答:

max=10,row=1,colum=2

14.#include

voidcopy_str(charfrom[],charto[])

{intk=0;

while(from[k]!

=‘\0’)

{to[k]=from[k];k++;}

to[k]=‘\0’;/*末尾加上串结束标志*/

}

voidmain()

{charstr1[80]="good",str2[80]="abcdef";

copy_str(str1,str2);

puts(str2);

}

答:

good

15.#include

voidmain()

{inta=0;

a+=(a=8);

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

}

答:

16

16.#include

voidmain()

{intx=4;

if(x++>=5)

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

else

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

}

答:

5

17.#include

#defineMAX(a,b)(a>b?

a:

b)+1

voidmain()

{inti=6,j=8;

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

}

答:

9

18.#include

voidmain()

{inti,j,m=0,n=0,k=0;

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

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

switch(i%j)

{case0:

m++;break;

case1:

n++;break;

case2:

k++;break;

default:

k++;n++;m++;

}

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

}

答:

431

 

19.#include

voidmain()

{inti;

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

{if(i%2)

putchar(‘<’);

else

continue;

putchar(‘>’);

}

putchar(‘#’);

}

答:

<><>#

20.与12题重复

答:

6565345

21.#include

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

voidmain()

{inta=7,b=5;

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

}

答:

2

22.#include

voidmain()

{intn=2;

printf(“%d,%d,%d\n”,++n,n+=2,--n);

}

答:

4,3,1

23.#include

voidmain()

{intx=1,a=0,b=0;

switch(x)

{case0:

b++;

case1:

a++;

case2:

a++;b++;

}

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

}

答:

a=2,b=1

24.#include

voidmain()

{ints,t,a=-2,b=6;

s=t=1;

if(a>0)s=s+1;

if(a>b)t=s+t;

elseif(a==b)t=5;

elset=2*s;

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

}

答:

t=2

25.#include

#defineS(a,b)(a)*(b)

voidmain()

{inta=3,area;

area=S(a,a+3);

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

}

答:

area=18

26.#include

voidmain()

{inti=0,a=0;

while(i<20)

{for(;;)

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

elsei--;

i+=11;

a+=i;

}

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

}

答:

32

27.#include

voidmain()

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

inti,s=0;

for(i=0;i<4;i++)s+=aa[i][2];

printf(“%d\n”,s);

}

答:

29

28.#include

fun(inta,intb)

{if(a>b)return(a);

elsereturn(b);

}

voidmain()

{intx=3,y=8,z=6,r;

r=fun(fun(x,y),2*z);

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

}

答:

12

三、编程题

1.设有分段函数:

x(x<1)

Y=2x-1(1≤x<10)写一程序,输入x,输出y的值。

3x-11(x≥10)

答:

#include

voidmain()

{

intx,y;

printf(“输入x:

”);

scanf(“%d\n”,&x);

if(x<1)

{y=x;

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

}

elseif(x<10)

{y=2*x-1;

printf(“x=%3d,y=2*x-1=%d\n”,x,y);

}

else

{y=3*x-11;

printf(“x=%3d,y=3*x-11=%d\n”,x,y);

}

}

2.编程任意输入两个实数a和b,计算下面函数的值,并输出y值。

a-ba>b

y=

a

a*ba=b

答:

#include

voidmain()

{

floata,b,y;

scanf(“%f,%f”,&a,&b);

if(a

y=a/b;

else

if(a==b)y=a*b;

elsey=a-b;

printf(“y=%f\n”,y);

}

3.编程序求如下分段函数的值

答:

#include

#include

voidmain()

{

floatx,y;

scanf(“%d”,&x);

if(x<=0)

y=fabs(x)+3;

elseif(x<1&&x>=0)

{y=1+x*x;}

else

{y=2*x+sqrt(x);

printf(“x=%f,y=%f\n”,x,y);

}

4.写一个判断素数的函数。

要求在主函数中输入一个整数并输出相应的判断信息。

答:

#include

voidmain()

{intn,i;

printf(“pleaseenteraintegernumber,n=?

”);

scanf(“%d”,&n);

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

if(n%i==0)break;

if(i

elseprintf(“%disaprimenumber.\n”,n);

}

5.编程序计算s=1!

-2!

+3!

-4!

+……-10!

,并输出结果。

答:

#include

voidmain()

{inti,k=1,njie=1;

floatsum=0;

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

{njie=njie*i;

sum=sum+njie*k;

k=-1*k;

}

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

}

6.编写一个函数,将一个字符串(最多80个字符)中的大写字母变为小写字母,小写字母变为大写字母。

要求字符串的输入与输出在主函数中完成。

答:

include

voidmain()

{

inti;

chara[80];

gets(a);

puts(a);

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

if(a[i]>=65&&a[i]<=90)

a[i]=a[i]+32;

puts(a);

}

7.编程计算:

s=1+12+123+1234+12345+123456(必须用循环控制语句实现)

答:

#include

voidmain()

{

longintt=0,s=0,i;

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

{t=i+t*10;s=s+t;}

printf(”s=%ld\n”,s);

}

8.编写函数change使输入的字符串按反序存放,在主函数中输入和输出字符串。

例如输入是:

12345abcde,则输出为:

edcba54321

答:

voidmain()

{

chara[100];

gets(a);

change(a);

puts(a);

}

#include

#include

voidchange(chara[])

{

inti,j,k;

chartemp;

k=strlen(a);

for(i=0;i

for(j=i+1;j

{

temp=a[i];

a[i]=a[j];

a[j]=temp;

}

}

9.编程,在N×N矩阵中(即N行N列的数组),求主对角线和次对角线上的各元素之和。

答:

#defineN10;

main()

{

inti,j;

inta[N][N];

intsum=0;

for(i=0;i

for(j=0;j

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

for(i=0;i

for(j=0;j

if(i==j||(i+j==N))//i==j是判断是否主对角线的元素i+j==N是判断是否是次对角线的元素sum+=a[i][j];

printf("%d",sum);

}

10.10个评委给出某选手打分,编程实现去掉一个最高分和一个最低分,求最后得分(平均分)

答:

#include

intmain()

{

inta[10],i,max,min;

floatsum;

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

{

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

}

max=a[0];

min=a[0];

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

{

if(max

max=a[i];

elseif(min>a[i])

min=a[i];

}

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

{sum=sum+a[i];}

sum=(sum-max-min)/8;

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

}

}

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

当前位置:首页 > PPT模板 > 其它模板

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

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