广东海洋大学C语言试题知识分享.docx
《广东海洋大学C语言试题知识分享.docx》由会员分享,可在线阅读,更多相关《广东海洋大学C语言试题知识分享.docx(13页珍藏版)》请在冰点文库上搜索。
广东海洋大学C语言试题知识分享
广东海洋大学C语言试题
广东海洋大学——学年第学期
《C程序设计》课程试题
课程号:
16232110
√
考试
□
A卷
√
闭卷
□
考查
□
B卷
□
开卷
题号
一
二
三
四
五
六
七
八
九
十
总分
阅卷教师
各题分数
25
20
10
10
5
30
100
实得分数
一、单项选择题(25分,每题1分)
1.正确的c语言标识符是____________.
A.2nameB.DATA_FILEC.(break)D.A@COM
答案:
B知识点:
标识符难度:
C
2.在c语言中,数组元素的下标从__________开始.
A.0B.1C.2D.任意
答案:
A知识点:
数组难度:
C
3.执行下列程序后,a的值是___________.
Inta=9,b,c;a+=2;
A.2B.10C.11D.8
答案:
C知识点:
运算符难度:
B
4.若有以下定义和语句,且,则___________是对数组元素的正确表示.
inta[]={1,2,3,4,5},*p;
p=a;
A.&(a+2)B.a++C.p[2]D.&p
答案:
C知识点:
数组难度:
A
5为避免嵌套条件支语句if~else的二义性,C语言规定,else总是与__________组成配对关系.
A.缩排位置相同的ifB.同一行的if
C.在其之前未配对的最近的ifD.在其之前未配对的if
答案:
C知识点:
分支语句难度:
C
6.若a=10,b=20,c=30,则表达式________的值为真.
A.!
(a!
=0)B.(ac)
C.(b>c)||(b>a)D.(c==a)||(c==b)
答案:
C知识点:
表达式难度:
B
7.若已定义:
inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是__________
A.p+1 B.a+1 C.a++ D.++p
答案:
C知识点:
指针难度:
A
8.若有以下的说明和语句,则在执行for语句后,*(*(pt+l)+2)表示的数组元素是_______________
intt[3][3],*pt([3],k;
for(k=0;k<3;k++)pt[k]=&t[k][0];
A.t[2][0] B.t[2][2] C.t[l][2] D.t[2][l]
答案:
C知识点:
数组与指针难度:
A
9.设x和y均为int型变量,则下列语句
x+=y;y=x-y;x-=y;
的功能是()。
A.把x和y按从大到小排序B.把x和y按从小到大排序
C.无确定结果D.交换x和y的值
(难度系数B,知识点:
+=,-=)答案:
D
10.下述描述中不正确的是()。
A.字符型数组中可以存放字符串
B.可以对字符型数组进行整体输入、输出
C.可以对整型数组进行整体输入、输出
D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值
(难度系数B,知识点:
数组)答案:
C
11.以下4个选项中,不能看作一条语句的是()
A.{;}B.a=0,b=0,c=0;
C.if(a>0);D.if(b==0)m=1;n=2;
(难度系数C,知识点:
单行语句)答案:
D
12.若已定义:
inta[]={0,1,2,3,4,5,6,7,8,9],*p=a,i;
其中0≤i≤9,则对a数组元素不正确的引用是()
A.a[p-a](B)*(&a[i])C.p[i]D.a[10]
(难度系数C,知识点:
数组元素)答案:
D
13.若有ints[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是()
A.1B.2C.3D.4
数组运算(难度系数C)答案:
D
14.用数组名作为函数的实参时,传递给形参的是()。
A.数组的首地址B.数组的第1个元素
C.数组中的全部元素D.数组的元素个数
函数调用(难度系数C)答案:
A
15.表达式'A'+4*25.0-'b'的正确结果是()。
A.67B.67.0C.不确定D.67L
C语言表达式运算(难度系数B)答案:
B
16.能表示条件0≤x≤100的表达式是()。
A.0<=x<=100B.)x>=0,x<=100
C.0≤x≤100D.)x>=0&&x<=100
C语言表达式运算(难度系数C)答案:
D
17.对字符串"Boy"进行完整赋值的操作是()。
A.chars[3]={'B','o','y'};B.chars[]="Boy";
C.chars[3]={"Boy"};D.chars[3];s="Boy";
字符串数组运算(难度系数C)答案:
B
18.若有代数式
,则不正确的C语言表达式是()。
A.x/b/c*y*8B.8*x*y/b/c
C.8*x*y/b*cD.x*y/c/b*8
C语言表达式(难度系数B)答案:
C
19、下列可以正确表示字符型常数的是。
A."B"B.'\010'C.68D.D
(知识点字符型常数难度系数C)正确答案:
B
20、以下程序的输出结果是。
voidmain()
{inta[]={1,2,3,4,5,6},*p;
p=a;*(p+3)+=1;
printf(“%d,%d\n”,*p,*(p+3));}
A.0,5B.1,5C.0,6D.1,6
(难度系数B)(答案:
B)(知识点:
指针)
21、若变量a是int类型,并执行了语句:
a='D'+3.5;则正确的叙述是:
A.a的值是字符DB.a的值是3
C.不允许字符型和浮点型相加D.a的值是字符'D'的ASCII值加上3
(知识点字符难度系数B)正确答案:
D
22.若有说明语句:
inta,b,c,*d=&c;,则能正确从键盘读入三个整数
分别赋给变量a、b、c的语句是()。
A.scanf("%d%d%d",&a,&b,&d);B.scanf("%d%d%d",&a,&b,d);
C.scanf("%d%d%d",a,b,d);D.scanf("%d%d%d",a,b,*d);
(知识点键盘读入难度系数C)正确答案:
B
23.为判断变量m是否是数字,可用表达式()。
A.0<=m&&m<=9B.'0'<=m&&m<='9'
C."0"<=m&&m<="9"D.、三个答案都错
(知识点变量难度系数B)正确答案:
A
24、对于"int*pa[5];"的描述中,是正确的。
A.pa是一个指向数组的指针,所指向的数组是5个int型元素
B.pa是一个指向某数组中第5个元素的指针,该元素是int型变量
C.pa[5]表示某个元素的第5个元素的值
D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针
(知识点指针难度系数B)正确答案:
D
25、下列程序段的输出结果是。
func(inta,intb)
{intc;
c=a+b;
returnc;
}
main()
{intx=6,y=7,z=8,r;
r=func(x--,y++,x+y),z--);
printf("%d\n",a);
}
A.18B.22C.21D.19
(知识点函数难度系数A)正确答案:
C
二、填空题(20分,每题2分)
1.下列程序的输出结果是()。
#include
main()
{charb[30];
strcpy(&b[0],"CH");
strcpy(&b[1],"DEF");
strcpy(&b[2],"ABC");
printf("%s\n",b);
}
答案:
CDABC知识点:
内部函数,字符数组难度:
A
2.下列程序的输出结果是()。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
答案:
56知识点:
函数难度:
B
3.十进制数1385转换成十六进制数为___________
答案:
569知识点:
进制转换难度:
B:
考试大-计算机二级考试
4.语句:
printf("%d",(a=2)&&(b=-2);的输出结果是_________
答案:
1知识点:
运算符难度:
C
5.以下程序的输出结果是_____________
{intx=10,y=10,I;
for(i=0;x>8;y=++i)
printf("%d,%d",x--,y);
}
答案:
101091知识点:
for循环难度:
B
6、若有说明:
inta[3][4]={{1,2},{0},{4,6,8,10}},则a[1][2]=
(知识点数组难度系数C)答案:
0
7、已知x=2.5,a=7,y=4.7,则x+a%3*(int)(x+y)%2/4的值为:
______
(知识点变量难度系数B)答案:
2.5
8、设i,j均为int型变量,则执行完下面的for循环后,k的值为。
for(i=1,j=10;i<=j;i++,j--)k=i+j;
(知识点变量难度系数B)答案:
10
9、定义b为共有10个元素的一维数字数组、同时定义p为指向a数组首地址的指针变量的语句为。
(知识点数组难度系数B)答案:
intb[10],*p=a;
10、若b=10,则(++b)+(++b)+(++b)的值为:
(知识点++运算符难度系数A)答案:
37
三、判断题(10分,每题1分)
1、( )所有的变量在使用前都必须予以申明。
(难度系数C,知识点:
变量声明)答案:
错
2、( )switch选择结构中必须有default子句。
(难度系数C,知识点:
switch选择结构)答案:
错
3、( )求余运算符%只能用于两个整数操作数。
(难度系数C,知识点:
求余运算符%)答案:
对
4、( )若有说明intc;则while(c=getchar());是错误的C语句。
(难度系数B,知识点:
while语句)答案:
错
5、( )使用continue和break语句,都可以使得C程序的执行直接从循环中跳出。
(难度系数C,知识点:
跳出循环语句)答案:
错
6、()注释内容太多会影响程序的执行效率。
知识点:
C程序执行(难度系数C)答案:
错
7、()C程序执行的入口是main()函数,所以main函数必须放在程序的开头。
知识点:
C程序执行(难度系数C)答案:
错
8、()若定义的函数没有参数,则函数名后的圆括号可以省略。
知识点:
函数定义(难度系数C)答案:
错
9.()在一个函数内中定义的变量可以在本函数范围内有效。
(知识点函数难度系数B)答案:
对
10.()全局变量和静态变量没有初始时,初始值为0。
(知识点变量难度系数B)答案:
对
四、程序填空题(10分,每题5分)
1、下面程序的功能是:
求一个5×5矩阵对角线元素之和。
#defineN5
main()
{inta[N][N],sum=0;
inti,j;
for(i=0;ifor(j=0;jscanf("%d",&a[i][j]);
for(i=0;iprintf("sum=%4d\n",sum);
}
(难度系数B,知识点:
二维数组求和)答案:
sum=sum+a[i][i];
2、输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数。
用下标为0元素统计字符“0”的个数,下标为1的元素统计字符“1”的个数。
程序如下
#include
voidmain()
{charc[80];inti=0,k,a[10]={0};
gets(c);
while(①)
{k=c[i]-48;
②;i++;}
for(i=0;i<10;i++)
printf("\n%d",③);
}
(知识点数组难度系数B)答案:
①c[i]!
='0'②a[k]++或a[k]+1③a[i]
五、读程序写结果(5分,每题5分)
1、#include
#include
structWorker{
charname[15];//姓名
intage;//年龄
floatpay;};//工资
voidmain()
{Workerx;
char*t="WeiRong";
intd=45;floatf=4000;
strcpy(x.name,t);
x.age=d;x.pay=f;
printf("%s%d%f\n",x.name,x.age,x.pay);}
该程序的运行结果是:
___________________________________
(知识点指针,字符难度系数B)答案:
WeiRong454000
六、编程题(30分,每题10分)
1、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
答案:
#include"stdio.h"
main()
{
inti,j,k,n;
printf("'waterflower'numberis:
");
for(n=100;n<1000;n++)
{
i=n/100;/*分解出百位*/
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
{
printf("%-5d",n);
}
}
printf("\n");
}
知识点:
循环结构,分支结构难度:
B
2、编写程序判断某一个数m是否为素数,如果是则输出"misaprime",否则就输出"misnotaprime"。
(难度系数C,知识点:
素数)答案:
main(){inti,m;
printf("pleaseinputanumberm:
\n");
scanf("m=%d",&m);
for(i=2;i{if(m%i==0)
{printf("%disaprime\n",m);break;}
elsecontinue;}
if(i==m)printf("%disnotaprime\n",m);
}
3.编程将字符数组中的字符串逆序存放并将前后结果输出,要求在一个函数中用指针来实现字符串逆序存放。
C语言指针使用(难度系数A)答案:
charstrrev(char*s)
{char*head=s,*tail;
chartemp;
tail=s+(strlen(s)-1);
while(head{temp=*tail;
*tail=*head;
*head=temp;
tail--;head++;}
}
main()
{chartest[]={“thisisthetest.”};
printf(“%s\n”,test);
strrev(test);
printf(“%s\n”,test);
}