扬州大学C语言新生竞赛试卷2014.doc

上传人:b****1 文档编号:250875 上传时间:2022-10-07 格式:DOC 页数:15 大小:66.50KB
下载 相关 举报
扬州大学C语言新生竞赛试卷2014.doc_第1页
第1页 / 共15页
扬州大学C语言新生竞赛试卷2014.doc_第2页
第2页 / 共15页
扬州大学C语言新生竞赛试卷2014.doc_第3页
第3页 / 共15页
扬州大学C语言新生竞赛试卷2014.doc_第4页
第4页 / 共15页
扬州大学C语言新生竞赛试卷2014.doc_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

扬州大学C语言新生竞赛试卷2014.doc

《扬州大学C语言新生竞赛试卷2014.doc》由会员分享,可在线阅读,更多相关《扬州大学C语言新生竞赛试卷2014.doc(15页珍藏版)》请在冰豆网上搜索。

扬州大学C语言新生竞赛试卷2014.doc

学院________________系_______________班级___________________学号__________________姓名____________

………………………………………………….装…………………………….订…………………………..线…………………………………

扬州大学信息工程学院

2014级新生C语言竞赛试卷

题目

总分

得分

阅卷人

得分

阅卷人

一、单项选择题(共10分,每题1分)

注意:

在下列每小题的四个备选答案中选出一个正确的答案,并将其字母标号填入题后的括号内。

1.下列表达式中,错误的是()。

A.4.0%2.0B.k+++jC.a+b>c+d?

a:

bD.x*=y+30

2.设有说明“intx,y,z,m=10,n=5;”,执行下面三个语句:

x=(--m==n++)?

—m:

++n;

y=m++;

z=n;

则x、y、z的值分别是()。

A.7、9、7B.5、9、7C.6、1、5D.10、11、10

3.设有说明“intx=1,y=1,z=1,c;”,执行语句“c=--x&&--y||--z;”后,x、y、z的值分别是()。

A.0、1、1、B.0、1、0C.1、0、1D.0、0、1

4.以下常量中正确的是()。

A.’abc’B.’\x123’C.3.15E-1.2D.”a”

5.以下不致造成死循环的语句是()。

A.for(y=0,x=1;x>++y;x=i++)i=x;

B.for(;;x+=i);

C.while(x=8)x--;

D.for(i=10,sum=0;sum<=i;)sum=--i;

6.设有以下函数定义,则返回的函数值是()。

int*fun(int*a)

{int*t;*a=99;t=a;returnt;}

main()

{intx,*y ,*fun(int*);

y=fun(&x) ;

...

}

A.无确切的值B.形参a的地址

C.主程序中变量x的地址D.函数fun中变量t的地址

7.设有数组说明“inta[4][4];”则不能等价表示数组元素a[3][3]的是()。

A.*(a[3]+3)B.*(*(a+3)+3)C.*&a[3][3]D.(*(*(a+3))+3)

8.设有说明“char*str=”\t\’c\\Language\n”;”,则指针str所指向字符串的长度是()。

A.17B.13C.15D.非法说明

9.设有说明:

struct

{charname[15],sex;

intage;floatscore;

}stu,*p=&stu;

则以下不能正确输入结构体成员值的是()。

A.scanf(“%c”,&p->sex);B.scanf(“%s”,stu.name);

C.scanf(“%d”,&stu.age);;D.scanf(“%f”,p->score);

10.设有“chars[]=”Program”,*p=s;”,则以下叙述中正确的是()。

A.数组s的内容与指针变量p中的内容相同

B.数组s的长度与strlen(p)的值相等

C.p[5]的值等于s[5]的值

D.sizeof(s)等于sizeof(*p)

得分

阅卷人

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

1.若有定义语句“staticcharstr[4][20]={“thank”,”you”,”very”,”much!

”};”,则数组str中存储’\0’的数组元素有个。

2.在C语言中,当关系表达式中的关系成立时,则该关系表达式的值是。

3.下列程序是求1到100的累加和,其中有3个能够完成规定的功能;有1个所完成的功能与其他程序不同,它是程序段。

A.s=0;i=0;

while(i<=100)s+=i++;

B.s=0;i=1;

while(i++<100)s+=i;

C.s=0;i=0;

while(i<100)s+=++i;

D.s=0;i=0;

while(++i<=100)s+=i;

4.若二维数组a有m列,则数组元素a[i][j]在数组中的位置是,在a[i][j]前的元素个数是。

(假设a[0][0]位于数组的第一个位置上)

5.若有说明:

inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是。

6.若用数组名作为函数调用的实参,传递给形参的是。

7.凡是在函数中未指定存储类别的局部变量,其隐含的存储类别是。

8.若有说明:

inta[5][6],*p=a[0],(*q)[6]=a,则数组元素a[i][j]的指针可表示为p+_______;*(*(q+i)+j)表示。

9.以下与库函数strcpy(char*p1,char*p2)功能不相同的程序段是。

A.strcpy1(char*p1,char*p2)

{while((*p1++=*p2++)!

=’\0’);}

B.strcpy2(char*p1,char*p2)

{while((*p1=*p2)!

=’\0’)p1++,p2++;}

C.strcpy3(char*p1,char*p2)

{while(*p1++=*p2++);}

D.strcpy4(char*p1,char*p2)

{while(*p2)*p1++=*p2++;}

10.下面程序的运行结果是。

main()

{structcmplx

{intx;

inty;

}cnum[2]={1,3,2,7},*p=&cnum[0] ;

printf(“%d\n“,cnum[0].y/cnum[0].x*(++p)->x);}

得分

阅卷人

三、阅读程序(共20分,每题4分)

1.试写出下列程序运行结果。

#include

voidfun(int*a,intb,int*c)

{*a=++b;

b=*c;

*c=*a;

}

voidmain()

{inta=100,b=200,c=300;

{inta=4;

c=a+b;

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

{intc=b;

fun(&a,b,&c);

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

}

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

}

}

【结果】

2.试写出下列程序运行结果。

#include

voidf(int*p,intn)

{inti,j;

for(i=0;i

for(j=i+1;j

if(p[i]&&p[j]&&(p[j]%p[i]==0))p[j]=0;

}

voidmain()

{inta[28],i,j=0;

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

f(a,28);

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

if(a[i]){printf("%d\t",a[i]);

if(++j%5==0)printf("\n");}

}

【结果】

3.假设整型数据的内存字节数为2,再假设以下程序的第一个printf语句的输出为ffe2,试写出下列程序运行结果。

#include

voidmain()

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

printf(“%x\n”,p)/*输出结果设为ffe2*/

printf(“%x\n”,p+9);

printf(“%d\n”,*p+9);

printf(“%d\n”,*(p+9));

printf(“%d\n”,*++p+9);

}

【结果】

4.试写出下列程序运行结果。

#include

voidmain()

{staticintsq[3][3]={0};

inti,j,k;

i=1,j=2;

sq[i][j]=1;

for(k=2;k<=9;k++)

{i++,j++;

if(i>2&&j>2)i--,j-=2;

elseif(i<=2&&j>2)j=0;

elseif(i>2&&j<=2)i=0;

elseif(i<=2&&j<=2&&sq[i][j]!

=0)i--,j-=2;

sq[i][j]=k;

}

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

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

printf("\n");

}

}

【结果】

5.试写出下列程序运行结果。

#include

structs

{intn,*m;}*p,*q;

intd[5]={10,20,30,40,50};

structsarr[5]={{100,&d[0]},{200,&d[1]},{300,&d[2]},{400,&d[3]},

{500,&d[4]}};

main()

{q=p=arr;

printf(“%d\n”,++p->n);p++;

printf(“%d\n”,p++->n);

printf(“%d\n”,++(p->m));

q+=3;

printf(“%d\n”,q->m);

}

【结果】

得分

阅卷人

四、完善程序(共20分,每空2分)

1.函数insert()有三个参数:

第一个参数是一个指向数组的指针;第二个参数指明数组的大小;第三个参数是要插入数组中的一个数。

设数组中的数据已按升序排序。

该函数的功能是:

首先采用折半查找的方法,找出要插入数据的位

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

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

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

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