广工C08.docx
- 文档编号:15970054
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:12
- 大小:33.92KB
广工C08.docx
《广工C08.docx》由会员分享,可在线阅读,更多相关《广工C08.docx(12页珍藏版)》请在冰点文库上搜索。
广工C08
广东工业大学考试试卷(A)
课程名称:
C语言程序设计试卷满分100分
考试时间:
2008年12月30日(第18周星期二)
题号
一
二
三
四
五
六
七
八
九
十
总分
评卷得分
评卷签名
复核得分
复核签名
一、单选题(每题2分,共60分)
1.以下描述正确的是C
A)C程序的执行是从main()函数开始,到本程序的最后一个函数结束
B)编译程序对C源程序编译时不检查语法
C)C程序中没有输入输出语句
D)在一个C程序中main()函数必须出现在所有函数之前
2.结构化程序设计不应该使用B
A)自顶向下,逐步细化的方法
B)灵活、简洁的goto结构
C)模块化设计
D)三种基本结构:
顺序结构、选择结构、循环结构的编码方法
3.将C源程序进行B可得到目标文件。
A)编辑B)编译C)连接D)运行
4.在C语言中,变量所分配的内存空间大小C
A)均为两个字节B)由用户自己定义
C)由变量的类型决定D)是随意的
5.以下不能定义为用户标识符是D
A)minB)_01C)_intD)3a
6.以下选项中可作为C语言合法常量的是D
A)3e2.0B)081C)e3D)123L
7.若有语句charc;,并要将字符a赋给变量c,则下列赋值表达式正确的是B。
A)c=aB)c=’a’C)c=”a”D)c=’97’
8.有程序段:
inta,b;scanf(“%d,%d”,&a,&b);请为之选择运行时正确的输入方法_____B___
A)12↙B)1,2↙C)1↙2↙D)1;2↙
9.若有语句intx=5;则执行语句x+=x*=10;后,a的值是A。
A)100B)55C)60D)105
10.下列语句合法的是B。
A)4+a=b=0;B)a=++b;C)a=2=b=6;D)a=4++;
11.执行以下语句,输出结果是C。
intx=2;
printf(“%d”,((x=4*5,x*5),x+20));
A)120B)100C)40D)20
12.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为_C__
A)由实参传给形参,再由形参传回给实参
B)地址传递
C)单向值传递
D)由用户指定传递方式
13.以下选项中非法的表达式是A。
A)7.5%2/2B)x=y=0C)(char)(66+1)D)’c’+1
14.下列程序的输出结果是D。
voidmain()
{floata=3.2;
intb,c;
b=1.2;
c=(b+3.8)/5.0;->c=(1+3)/5.0=4/5.0=0
printf(“%d\n”,a*c);
}
A)3B)3.2C)3.07D)0
15.C语言中用于结构化程序设计的三种基本结构是A。
A)顺序结构、选择结构、循环结构B)if,switch,break
C)for,while,do-whileD)if,for,continue
16.执行以下程序,输出结果是D。
intx,y=3,z=2;
x=(--y==z++)?
--y:
++z;
printf(“x=%dy=%dz=%d”,x,y,z);
A)x=4y=2z=4B)x=3y=2z=3
C)x=4y=1z=4D)x=1y=1z=3
17.已有定义:
chara[]="abc",b[]={'a','b','c'};以下叙述中正确的是C
A)数组a和b的长度相同B)a数组长度小于b数组长度
C)a数组长度大于b数组长度D)上述说法都不对
18.执行以下程序,输出结果是C。
voidmain()
{intx=3,y=4,z=2,i;
i=x
y&&(z=10)>y;
printf(“i=%dz=%d”,i,z);
}
A)i=0z=10B)i=1z=10C)i=0z=2D)i=1z=2
19.用数组名作为函数调用时的实参,实际上传送给形参的是A
A)数组首地址B)数组的第一个元素值
C)数组中全部元素的值D)数组元素的个数
20.执行如下语句,输出c的值是C。
intc=1,x=3;
switch(x+1)
{case4:
c++;
case6:
c++;
break;
default:
c++;
}
printf(“%d”,c);
A)1B)2C)3D)4
21.若有定义:
inta[2][3];则对a数组的第i行j列元素的正确引用为A
A)*(a[i]+j) B)*(a+i)+j C)*(a+i+j) D)a[i]+j
22.若有如下程序:
voidmain()
{intx=1,a=0;
do
{a++;}while(x,x--);
}
则语句a++;执行的次数是C。
A)0B)1C)2D)无限次
23.以下程序中,while循环的循环次数是D。
voidmain()
{inti=0;
while(i<10)
{if(i<1)continue;
if(i==5)break;
i++;
}
……}
A)1B)10C)6D)死循环,不能确定次数
24.下面能正确定义一维数组的选项是B。
A)intnum[];B)#defineN10
intnum[N];
C)intnum[0..10];D)intN=10;
intnum[N];
25.在C语言中,函数的隐含存储类别是C。
A)autoB)staticC)externD)无存储类别
26.以下程序的输出结果是C。
voidmain()
{charstr[20]=”hell\0o\t”;
printf(“%d%d\n”,strlen(str),sizeof(str));}
A)97B)720C)420D)2020
27.下列选项中不正确的语句组是A。
A)chars[10];s=“Beijing”;B)chars[]=“Beijing”;
C)char*s=“Beijing”;D)char*s;s=“Beijing”;
28.有如下程序,执行后输出的结果是C。
voidf(intx,inty)
{intt;
if(x } voidmain() {inta=1,b=3,c=2; f(a,b);f(a,c);f(b,c); printf(“%d,%d,%d\n”,a,b,c); } A)3,2,1B)1,2,3C)1,3,2D)2,3,1 29.执行如下程序段后,a的值为C。 int*p,a=1,b=2; p=&a;a=*p+b; A)1B)2C)3D)4 30.下列关于C语言数据文件的叙述中正确的是C。 A)文件由ASCII码字符序列组成,C语言只能读写文本文件 B)文件由二进制数据序列组成,C语言只能读写二进制文件 C)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 D)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 二、填空题(每空2分,共40分) 1.若输入字符串: abcde<回车>,则以下while循环体将执行 (1)0次。 while((ch=getchar())==’d’)putchar(ch); 2.设有下列定义语句intx[3]={3,4,5},*p1=x,**p2=&p1;则表达式**p2的值是3 (2),表达式*(*p2+1)的值是4(3)。 3.以下函数的功能是: 求x的y次方,请填空。 doublefun(doublex,inty) {inti; doublez; for(i=1,z=x;i z=z*x(4); returnz;} 4.若有以下程序段,请填空。 structstr {inta; structstr*next; }*p1; p1=(structstr*(5))malloc(sizeof(structstr)); 5.设有以下定义: structs {intinfo; structs*next; }x,y,z; 已建立如下图所示链表结构: 请写出删除节点y的赋值语句x.next=y.next;(6) 6.以下程序的功能是: 从键盘上输入一个字符串,把该字符串中的小写字母转换为大写字母(字母A的ASCII码为65,字母a的ASCII码为97),输出到文件test.txt中。 #include voidmain() {FILE*fp; charstr[100];inti=0; if((fp=fopen(“text.txt”,“w”(7)))==NULL) {printf(“can’topenthisfile.\n”);exit(0);} printf(“inputastring: \n”);gets(str); while(str[i]) {if(str[i]>=’a’&&str[i]<=’z’) str[i]=str[i]-32(8); fputc(str[i],fp); i++; } fclose(fp); } 7.下面程序是对10个数排序(由小到大) #include voidmain() {inta[11]; inti,j,t; printf(″input10numbers: \n″); for(i=1;i<=10;i++) scanf("%d",&a[i]); printf("\n"); for(i=1;i<=9;i++) for(j=i+1;j<=10;j++) if(a[i]>a[j](9)) {t=a[i]; a[i]=a[j](10); a[j]=t; } printf(″thesortednumbers: \n″); for(i=1;i<11;i++) printf(″%d″,a[i]); printf(″\n″); } 8.有3个学生,各学3门课,计算总平均分数。 #include voidaverage(float*p,intn) {floatsum=0,aver; float*p_end; p_end=p+n(11); for(;p<p_end;p++) sum=sum+(*p)(12); aver=sum/n; printf(″average=%5.2f\n″,aver);} voidmain() {floatscore[3][3]={{65,67,70},{80,87,90},{90,99,100}}; average(*score,9)(13);/*求9个分数的平均分*/ } 9.执行以下程序,输出结果是4(14)。 voidmain() {inta=6,b=5,c=4,d=3; if(a>b>c)printf(“%d\n”,d); elseif((c-1>=d)==1)printf(“%d\n”,d+1); elseprintf(“%d\n”,d+2); } 10.执行以下程序,输出结果是24(15)计算前面不为零的正数。 voidmain() {inta[4][4]={{1,2,-3,-4},{0,-5,-6,7},{-8,9,0,-10},{-11,12,-13,0}}; inti,j,s=0; for(i=0;i<4;i++) for(j=0;j<4;j++) {if(a[i][j]<0)continue; if(a[i][j]==0)break; s+=a[i][j]; } printf(”%d\n”,s); } 11.执行以下程序,输出结果是125(16)。 递归调用 voidfun(intx) {if(x/2>0)fun(x/2); printf(“%d”,x); } voidmain() {fun(5);} 12.执行以下程序,输出结果是357(17)。 voidfun() {staticinta=1; a+=2;printf(“%d”,a); } voidmain() {intc; for(c=1;c<4;c++)fun(); printf(“\n”);} 13.执行以下程序,输出结果是6(18)。 voidmain() {intx[8]={1,2,3,4,5,6,0,0},*s; s=x+3; printf(“%d\n”,s[2]); } 14.执行以下程序,输出结果是2,1(19)。 voidswap(int*pt1,int*pt2) {intp; p=*pt1;*pt1=*pt2;*pt2=p; } voidmain() {inta=1,b=2,*p1,*p2; p1=&a;p2=&b; if(*p1<*p2)swap(p1,p2); printf(“%d,%d\n”,a,b); } 15.执行以下程序,输出结果是4(20)。 voidmain() {inta[4][4]={{10,2,3,4},{1,6,7,8},{19,10,11,12},{1,14,15,16}}; int(*p)[4],i; p=a; printf(“%d”,*(p+2)-*(p+1)); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C08