程序设计基础试题-03-答案_第1页
程序设计基础试题-03-答案_第2页
程序设计基础试题-03-答案_第3页
程序设计基础试题-03-答案_第4页
程序设计基础试题-03-答案_第5页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学院领导审批并签名A/B卷广州大学学年第学期考试卷课程高级语言程序设计考试形式(开/闭卷,考试/查)学院系专业班级学号姓名题次一二三四五六七八九十总分评卷人分数评分一:选择题(每题3分,共60分)(1)若有以下定义:

chara;intb;

floatc;doubled;

则表达式a*b+d-c值的类型为(A)

A)doubleB)floatC)intD)char(2)设a=1,b=2,c=3,d=4,则表达式:a<B?A:C<D?A:D的结果为(D)

A)4B)3C)2D)1(3)在下列选项中,不正确的赋值语句是(D)

A)++t;B)n1=(n2=(n3=0));

C)k=i==j;D)a=b+c=1;(4)若有以下说明:

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

charc='a',d,g;

则数值为4的表达式是(D)

A)a[g-c]B)a[4]C)a['d'-'c']D)a['d'-c]

(5)若有以下说明

intw[3][4]={{0,1},{2,4},{5,8}};

int(*p)[4]=w;

则数值为4的表达式是(D)

A)*w[1]+1B)p++,*(p+1)

C)w[2][2]D)p[1][1](6)能正确表示a≥10或a≤0的关系表达式是(C)

A)a>=10ora<=0B)a>=10│a<=0

C)a>=10││a<=0D)a>=10││a<=0(7)下列可作为C语言赋值语句的是(C)

A)x=3,y=5B)a=b=6

C)i--;D)y=int(x);(8)设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:

scanf("i=%d,f=%f",&i,&f);

为了把100和765.12分别赋给i和f,则正确的输入为(A)

A)100765.12B)i=100,f=765.12

C)100765.12D)x=100y=765.12(9)给出以下定义:

charx[]="abcdefg";

chary[]={'a','b','c','d','e','f','g'};

则正确的叙述为(C)

A)数组X和数组Y等价B)数组x和数组Y的长度相同

C)数组X的长度大于数组Y的长度D)数组X的长度小于数组Y的长度(10)假定a和b为int型变量,则执行以下语句后b的值为(D)

a=1;b=10;

do

{b-=a;a++;}while(b--<0);

A)9B)-2C)-1D)8(11)设有以下宏定义:

#defineN3

#defineY(n)((N+1)*n)

则执行语句:z=2*(N+Y(5+1));后,z的值为(C)

A)出错B)42C)48D)54(12)设有如下定义:

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

int*ptr;

则下列程序段的输出结果为(D)

ptr=arr;

*(ptr+2)+=2;

printf("%d,%d\n",*ptr,*(ptr+2));

A)8,10B)6,8C)7,9D)6,10(13)执行以下程序段后,m的值为(A)

inta[2][3]={{1,2,3},{4,5,6}};

intm,*p;

p=&a[0][0];

m=(*p)*(*(p+2))*(*(p+4));

A)15B)14C)13D)12(14)有以下程序

main()

{intx,i;

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

{x=i;

if(++x%2==0)

if(x%3==0)

if(x%7==0)

printf("%d,i);

}

}

输出结果是(D)

A)28B)27C)42D)41(15)若有以下的说明和语句:

main()

{intt[3][2],*pt[3],k;

for(k=0;k<3;k++)pt[k]=t[k];

}

则以一选项中能正确表示t数组元素地址的表达式是(D)

A}&t[3][2]B}*pt[0]C}*(pt+1)D)&pt[2](16)有以下程序

#include<STDIO.H>

main()

{inta,b,c=246;

a=c/100%9;

b=(-1)&&(-1);

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

}

输出结果是(A)

A)2,1B)3,2C)4,3D)2,-1(17)有以下程序

#include<STDIO.H>

structstu

{intnum;

charname[10];

intage;

};

voidfun(structstu*p)

{printf("%s\n",(*p).name);}

main()

{structstustudents[3]={{9801,"Zhang",20},

{9802,"Wang",19},

{9803,"Zhao",18}};

fun(students+2);

}

输出结果是(B)

A)ZhangB)ZhaoC)WangD)18(18)有以下程序

main()

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

}

输出结果是(D)

A)gmB)rgC)orD)ga(19)有以下程序

intfun(intx,inty,int*cp,int*dp)

{*cp=x+y;*dp=x-y;}

main()

{inta,b,c,d;

a=30;b=50;

fun(a,b,&c,&d);

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

}

输出结果是(C)

A)50,30B)30,50C)80,-20D)80,20(20)有以下程序

#include"atdio.h"

intabc(intu,intv);

main()

{inta=24,b=16,c;

c=abc(a,b);

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

}

intabc(intu,intv)

{intw;

while(v)

{w=u%v;u=v;v=w}

returnu;

}

输出结果是(C)

A)6B)7C)8D)9二:填空题(共20分)(1)inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

则*(*(p+2)+1)值为60(1).(2分)(2)以下程序的输出结果是8,17(1).(3分)

#include<STDIO.H>

intfun(intx,inty)

{staticintm=0,i=2;

i+=m+1;

m=i+x+y;

returnm

}

main()

{intj=4,m=1,k;

k=fun(j,m);printf("%d,",k);

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

}(3)下面程序的输出是9(5分)

longfun5(intn)

{longs;

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

s=2;

else

s=n+fun5(n-1);

return(s);}

main()

{longx;

x=fun5(4);

printf("%ld\n",x);}(4)以下程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串,请填空.(5分)

#include"ctype.h"

#include"stdio.h"

main()

{charstr[81],*sptr;

inti;

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

{str[i]=getchar();

if(str[i]=='\n')break;

}

str[i]='\0'(1);

sptr=str;

while(*sptr)putchar(*sptr++(2));

}(5)以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同符的ASCII码之差.例如:输入的两个字符串分别为abcdef和abceef,则输出为-1.请填空.(5分)

#include<STDIO.H>

main()

{charstr[100],str2[100],c;

inti,s;

printf("\ninputstring1:\n");gest(str1);

printf("\ninputstring2:\n");gest(str2);

i=0;

while((strl[i]==str2[i])&&(str1[i]!=_'\0'___(1)))

i++;

s=__str1[i]-str2[i]__(2);

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

fgets(str,100,fp);

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

fclose(fp);

}三:程序编写题(下面3题任选2题,每题10分,共20分)题目1:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

题目2:判断1001-2000之间有多少个素数,并输出所有素数。题目3:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?答案:1voidinsert(intx[],intn,inty){inti,j;for(i=0;i<n;i++){if(x[i]>=y)break;}if(i==n)x[i]=y;else{for(j=n;j>i;j--)x[j]=x[j-1];x[i]=y;}}2#include"stdio.h"#include"math.h"voidmain(intargc,char*argv[]){inti,k,sum;for(i=1001,sum=0;i<=2000;i++){for(k=2;k<=sqrt(i);k++)if((imodk)==0)break;ifk>=sqrt(i){sum=sum+1;printf("%d",i);}}printf("\nt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论