C语言第二学期试题A卷.docx

上传人:b****5 文档编号:4599571 上传时间:2022-12-07 格式:DOCX 页数:17 大小:26.91KB
下载 相关 举报
C语言第二学期试题A卷.docx_第1页
第1页 / 共17页
C语言第二学期试题A卷.docx_第2页
第2页 / 共17页
C语言第二学期试题A卷.docx_第3页
第3页 / 共17页
C语言第二学期试题A卷.docx_第4页
第4页 / 共17页
C语言第二学期试题A卷.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C语言第二学期试题A卷.docx

《C语言第二学期试题A卷.docx》由会员分享,可在线阅读,更多相关《C语言第二学期试题A卷.docx(17页珍藏版)》请在冰豆网上搜索。

C语言第二学期试题A卷.docx

C语言第二学期试题A卷

命题教师:

成科扬

 

共12页

第1页

江苏大学试题

学生所在学院专业、班级学号姓名任课教师

(2014-2015学年第二学期)

课程名称程序设计(C语言)开课学院计算机学院

使用班级理工类考试日期2015年06月17日

题号

总分

核查人签名

得分

阅卷教师

注意事项:

1.闭卷考试。

考试时间为120分钟。

2.选择题答案请用2B铅笔填涂至答题卡,其他题目答案请用签字笔或圆珠笔填写在答题纸上。

3.请将试卷及答题纸分别都写上班级、学号、姓名、任课教师。

一、选择题(每题1分,共50分)

1.以下叙述不正确的是______。

A.在C程序中,注释说明只能位于一条语句的后面

B.一个C源程序可由一个或多个函数组成

C.C程序的基本组成单位是函数

D.一个C源程序必须包含一个main函数

2.以下关于C语言语句的叙述中,正确的是______。

A.所有语句都包含关键字

B.所有语句都必须在一行内书写完毕

C.所有语句都可以出现在源程序中的任何位置

D.复合语句由{}括住,且在复合语句中也可以定义变量

3.C语言程序经过编译以后生成的文件名的后缀是。

A..cppB..cC..objD..exe

4.下列数据中属于“字符串常量”的是______。

A.ABCB.'A'C.'ABC'D."A"

5.若有以下定义:

chara;intb;floatc;doubled;

则表达式a*b+d-c值的类型为______。

A.floatB.intC.charD.double

6.设有语句inta=3;,则执行了语句a+=a-=a*a;后,变量a的值是______。

A.3B.0C.9D.-12

7.设a,b为字符型变量,执行“scanf("a=%c,b=%c",&a,&b);”后,使变量a的值为字母A,变量b的值为字母B,从键盘上正确的输入是_。

A.ABB.'A','B'C.A,BD.a=A,b=B

8.设intx=1,y=1;表达式(!

x||y--)的值是。

A.0B.-1C.1D.2

9.设有以下语句:

intx=3,y=4,z=5;则下面表达式中值为0的是。

A.’x’&&’y’B.x||y+z&&y-zC.!

((x

z||1)D.x<=y

10.为表示关系a≥b≥c,应使用的C语言表达式是_。

A.(a>=b>=c)     B.(a>=b)AND(b>=c)

C.  (a>=b)&&(b>=c)   D.(a>=b)&(b>=c)

11.数学式

在C程序中正确的表示形式为_______。

A.sqrt(a)/2*bB.sqrt(a)/2/bC.sqrt(a)/2bD.sqrta/(2*b)

12.putchar()函数可以向终端输出一个______。

A.整型变量表达式值B.实型变量值

C.字符串D.字符常量或字符型变量值

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

#include

voidmain()

{inti=0;

switch(i)

{case0:

printf("%d",i);

case2:

printf("%d",i);break;

default:

printf("%d",i);break;}}

A.000    B.022    C.00    D.0

14.对下面三条语句(其中s1和s2为内嵌语句),正确的论断是______。

(1)if(a)s1;elses2;

(2)if(a==0)s2;elses1;

(3)if(a!

=0)s1;elses2;

A.三者相互等价

B.

(1)和

(2)等价,但与(3)不等价

C.三者互不等价

D.

(1)和(3)等价,但与

(2)不等价

15.假定所有变量均已正确定义,下列程序段运行后x的值是。

a=b=c=0;x=35;

if(!

a)x--;elseif(b);if(c)x=3;elsex=4;

A.34B.35C.3D.4

16.以下程序段的输出结果是。

 intx=3;

 do{ printf("%3d",x-=2);}

while(!

(--x));

 A.1      B.30      C.1-2      D.死循环

17.若变量已正确定义,要求程序段完成求5!

的计算,不能完成此操作的程序段是。

A.for(i=1,p=1;i<=5;i++)p*=i;B.for(i=1;i<=5;i++){p=1;p*=i;}

C.i=1;p=1;while(i<=5){p*=i;i++;}D.i=1;p=1;do{p*=i;i++;}while(i<=5);

18.以下数组定义中不正确的是______。

A.inta[2][3];B.intb[][3]={0,1,2,3};

C.intc[100][100]={0};D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};

19.以下程序段的输出结果是。

 #include

voidmain()

{ inti,sum;

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

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

A.15      B.14      C.不确定      D.0

20.以下程序段的输出结果是。

#include

voidmain()

{ inty=10;

for(;y>0;y--)

if(y%3==0)

printf("%d",--y);}

A.741      B.852      C.963      D.875421

21.下列程序的输出为:

#include

voidmain()

{intj,k,l=0,m=0;

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

{for(k=0;k<3;k++)l++;l-=k;}

m=j+k;

printf("%d,%d",l,m);}

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

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

#include

voidmain()

{inti=0,x=0,s=0;

for(;;)

{if(i==3||i==5)continue;

if(i==6)break;

i++;s+=i;};

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

A.10B.13C.21D.程序进入死循环

23.有定义inta[10];则对a数组元素的正确引用是______。

A.a[10]B.a[-1]C.a(5)D.a[10-10]

24.对以下说明语句的正确理解是______。

inta[10]={6,7,8,9,10};

A.将5个初值依次赋给a[1]至a[5]

B.将5个初值依次赋给a[0]至a[4]

C.将5个初值依次赋给a[6]至a[10]

D.因为数组长度与初值的个数不相同,所以此语句不正确

25.合法的数组说明语句是______。

A.inta[]="string";B.chara[]="string";

C.chara="string";D.chara[5]={'0','1','2','3','4','5'};

26.若有数组A和B的声明“staticcharA[]="ABCDEF",B[]={'A','B','C','D','E','F'};”,则数组A和数组B的长度分别是______。

A.7,6B.6,7C.6,6D.7,7

27.函数调用“strcat(strcpy(str1,str2),str3)”的功能是______。

A.将字符串str1复制到字符串str2中后再连接到字符串str3之后

B.将字符串str1连接到字符串str2之后再复制到字符串str3之后

C.将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后

D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中

28.若二维数组a有m列,则在存储其中的某一元素a[i][j]之前有______个数组元素。

A.j*m+iB.i*m+jC.i*m+j-1D.i*m+j+1

29.函数返回值的类型应由决定。

A.return中的表达式类型B.调用该函数的主调函数类型

C.定义函数所指定的类型D.实参类型

30.以下函数的类型是_______。

fun(floatx)

{floaty;

y=3*x-5.5;

returny;}

A.intB.不确定C.voidD.float

31.以下叙述中正确的是______。

A.函数可以有参数

也可以没有参数

B.C函数既可嵌套定义又可递归调用

C.函数须有返回值,否则不能调用

D.主函数必须书写在子函数之前

32.在下面有关函数间传递数据的四种方式中,不能把被调用函数的数据带回到主调函数中的是。

A.地址传递B.值传递C.返回值传递D.全局变量

33.以下叙述中不正确的是。

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

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

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

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

34.函数调用语句“f((e1,e2),(e3,e4,e5));”中参数的个数是。

A.1B.2C.4D.5

35.若有声明“longfun(int*x,intn,long*s);inta[4]={1,2,3,4};longb,c;”,则以下函数调用形式中正确的是_______。

A.c=fun(a,4,b);B.c=fun(a[],4,&b);

C.c=fun(a[4],4,b);D.c=fun(a,4,&b);

36.以下是一个自定义函数的头部,其中正确的是______。

A.intfun(intx[],y)B.intfun(intx[],intx)

C.intfun(intx[],inty)D.intfun(charx[][],inty)

37.设函数中的整形变量n,为保证其在未赋初值的情况下初值为0,应选择的存储类别是

A.autoB.registerC.staticD.auto或register

38.下面各语句行中,能正确进行赋字符串操作的语句是_________。

A.chars[5]={"ABCDE"};B.chars[5]={'A','B','C','D','E'};

C.char*s;s="ABCDE";D.char*s;scanf("%s",&s);

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

#defineN20

voidfun(inta[],intn,intm)

{inti;

for(i=m;i>=n;i--)

a[i+1]=a[i];}

voidmain()

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

fun(a,2,9);

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

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

A.10234B.12344C.12334D.12234

40.intj,*p=&j;要实现j的内容加10,错误的是_________。

A.*p=*&j+10;B.j=*p+10;C.*p=*p+10;D.*p=&j+10;

41.若有说明int(*p)[3];则以下_________是正确的叙述。

A.p是一个指针数组

B.(*p)[3]与*p[3]等价

C.p是一个指针,它可以指向一个一维数组中任一元素

D.p是一个行指针,它可以指向一个包含3列int类型元素的二维数组的每一行

42.设已有定义:

char*st="howareyou";下列程序段中正确的是_________。

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

43.若有结构体类型定义“typedefstructtest{intx,y[2];}TEST;”,则以下声明中正确的是_______。

A.structTESTx;B.structx;C.testx;D.TESTx;

44.对于下列程序段:

structSD

{intx;floaty;};

structSDa[3]={{1001,3.5},{1002,4.5},{1003,4.0}},*p;

p=a;

则下面不正确的使用是__________。

A.(++p)->xB.p++C.(*p).yD.p=&a[0].x

45.值为6的表达式为__________。

structst{intn;structst*next;}

staticstructsta[3]={5,&a[1],7,&a[2],9,’\0’},*p;

p=&a[0];

A.p++->nB.p->n++C.(*p).n++D.++p->n

46.下列语句中,将c定义为文件型指针的是______。

A.FILEc;B.FILE*c;C.filec;D.file*c;

47.有以下程序

#include

structord

{intx,y;}dt[2]={1,2,3,4};

voidmain()

{structord*p=dt;

printf("%d,",++p->x);printf("%d\n",++p->y);

}

程序运行后的输出结果是

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

48.标准库函数fputs(p1,p2)的功能是______。

A.从p1指向的文件中读一个字符串存入p2指向的内存空间

B.从p2指向的文件中读一个字符串存入p1指向的内存空间

C.从p1指向的内存空间中读一个字符串存入p2指向的文件

D.从p2指向的内存空间中读一个字符串存入p1指向的文件

49.fwrite函数的一般调用形式是______。

A.fwrite(buffer,count,size,fp);B.fwrite(fp,size,count,buffer);

C.fwrite(fp,count,size,buffer);D.fwrite(buffer,size,count,fp);

50.有以下程序

#include

voidmain()

{FILE*f;

f=fopen("filea.txt","w");

fprintf(f,"abc");

fclose(f);

}

若文本文件filea.txt中原有内容为:

hello,则运行以上程序后,文件filea.txt中的内容为

A.helloabcB.abcloC.abcD.abchello

二、阅读程序题(每空2分,共20分)

1.以下程序段的输出结果是①。

#include

voidmain()

{inta=4,b=3,c=5,t=0;

if(a

if(a

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

2.以下程序的输出结果是①。

voidmain()

{chara[]="programming",b[]="language";

char*p1,*p2;inti;

p1=a;p2=b;

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

if(*(p1+i)==*(p2+i))

printf("%c",*(p1+i));}

3.以下程序的输出结果是:

①。

若程序中变量a的值初始化为16,则输出结果是②。

#include

voidmain()

{inta=15,b=21,m=0;

switch(a%3)

{case0:

m++;break;

case1:

m++;

switch(b%2)

{default:

m++;

case0:

m++;break;}}

printf("m=%d\n",m);}

4.以下程序运行时输出结果是①。

#include

#include

intcount(chars[])

{inti=0;

if(s[i]=='\0')return0;

while(isalpha(s[i]))i++;//intisalpha(intch)为检查ch是否为字母的库函数

while(!

isalpha(s[i])&&s[i]!

='\0')i++;

return1+count(&s[i]);}

voidmain()

{charline[]="oneworld,onedream.";

printf("%d",count(line));}

5.运行下列程序,输入字符串"Albert"后,输出结果是①,本程序的功能是②。

#include

voidmain()

{chara[100];

intn;

gets(a);

n=0;

while(a[n]!

='\0')n++;

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

6.下面程序的输出结果是①。

#include

voidmain()

{intfun(inta);

inta=2,i;

for(i=0;i<3;i++)printf("%2d",fun(a));}

intfun(inta)

{intb=1;staticintc=1;

b++;c++;

return(a+b+c);}

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

①。

#include

voidmain()

{inta=1,b;

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

{if(a>=8)break;

if(a%2==1){a+=5;continue;}

a-=3;}

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

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

structks{inta;int*b;};

voidmain()

{structkss[4],*p;intn=1,j;

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

s[j].a=n;s[j].b=&(s[j].a);n+=2;}

p=&s[0];

printf("%d,%d\n",++(*p->b),*s[2].b);}

三、完善程序题(每空2分,共30分)

1.用牛顿迭代法求方程:

4x3-3x2+2x-7=0在1.5附近的根。

要求前后两次求出的根的差的绝对值小于10-5。

#include

#include

voidmain()

{floatx,x0,f,f1;x=1.5;

do{①;

f=((4*x0-3)*x0+2)*x0-7;

f1=(12*x0-6)*x0+2;

x=②;}while(③);

printf("root=%f\n",x);}

2.以下程序求一组整数的最大公约数。

试完善程序以达到要求的功能。

#include

intgcd(inta,intb)

{intr,t;;

if(b>a)

{t=a;a=b;b=t;}

while(①){a=b;b=r;}

returnb;}

voidmain()

{intx,i,a[6]={12,56,48,32,16,24};

x=a[0];

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

x=gcd(x,②);

printf("这组整数的最大公约数为:

%d",x);}

3.以下程序段的功能是将一个2×3的矩阵转置生成一个3×2的矩阵。

(即行列互换)

即13512

24634

56

voidmain()

{inta[2][3],b[3][2],i,j,k;

for(k=1,j=0;j<3;j++)

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

a[i][j]=①;

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

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

b[j][i]=②;

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

{for(j=0;j<2;j++)printf("%3d",b[i][j]);

printf("\n");}}

4.以下程序段的功能是用折半查找法判断任意读入的整数是否在有序数组中。

#definen11

voidmain()

{intx,low,mid,high,find;

staticinta[]={2,5,11,18,24,35,42,50,58,86,92};

scanf("%d",&x);

low=0;high=n-1;find=0;

while((low<=high)&&!

find)

{mid=(low+high)/2;

if(x==a[mid])

①;

else

if(x>a[mid])

②;

else

③;}

if(find)

printf("It'ssuccessful:

a[%d]=%d\n",mid,x);

else

printf("It'sfailtofind%d",x);}

5.程序填空:

以下程序的功能是计算s=

#include

longfun(intn)

{inti

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

当前位置:首页 > 高中教育 > 高中教育

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

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