西安电子科技大学2017学年上学期 《高级语言程序设计(C)》期末考试试题
学习中心/函授站_
姓 名 . 学 号
西安电子科技大学网络与继续教育学院Gcg傲朋学习网
2017学年上学期Gcg傲朋学习网
《高级语言程序设计(C)》期末考试试题Gcg傲朋学习网
(综合大作业)Gcg傲朋学习网
题号 一 二 三 四 总分Gcg傲朋学习网
题分 40 20 20 20 Gcg傲朋学习网
得分
考试说明:Gcg傲朋学习网
1、大作业于2017年4月20日下发,2017年5月6日交回;Gcg傲朋学习网
2、考试必须独立完成,如发现抄袭、雷同均按零分计;Gcg傲朋学习网
3、答案须手写完成,要求字迹工整、卷面干净。
一、选择题(每题2分,共40分)Gcg傲朋学习网
注意:须将本题的答案填入下表,否则不计分数。Gcg傲朋学习网
题号 1 2 3 4 5 6 7 8 9 10Gcg傲朋学习网
答案
题号 11 12 13 14 15 16 17 18 19 20Gcg傲朋学习网
答案 Gcg傲朋学习网
1、以下程序运行后,输出结果是Gcg傲朋学习网
main( )Gcg傲朋学习网
{Gcg傲朋学习网
char *s="abcde";Gcg傲朋学习网
s+=2;Gcg傲朋学习网
printf("%ld\n",s);Gcg傲朋学习网
}Gcg傲朋学习网
A.cde B.字符c的ASCII码值 C.字符c的地址 D.出错Gcg傲朋学习网
2、下面程序的运行结果是Gcg傲朋学习网
main()Gcg傲朋学习网
{Gcg傲朋学习网
char ch[7]={"65ab21"};Gcg傲朋学习网
int i,s =0Gcg傲朋学习网
for(i=0;ch[i]>='0'&&ch[i]<'9';i+=2)Gcg傲朋学习网
s=10*s+ch[i]-'0'Gcg傲朋学习网
printf("%d\n",s);Gcg傲朋学习网
}Gcg傲朋学习网
A.12ba56 B.6521 C.6 D.62Gcg傲朋学习网
3、若有说明,double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是Gcg傲朋学习网
A.*p=&a; scanf("%lf",p); B.p=(double*)malloc(8);scanf("%f",p);Gcg傲朋学习网
C.p=&a;scanf("%lf",a); D.p=&a; scanf("%lf",p);Gcg傲朋学习网
4、若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元:Gcg傲朋学习网
int *p;Gcg傲朋学习网
p=__________ malloc( sizeof(int));Gcg傲朋学习网
则应填入Gcg傲朋学习网
A.int B.int * C.(*int) D.(int *)Gcg傲朋学习网
5、若k是int型变量,且有下面的程序片段:Gcg傲朋学习网
k=-3Gcg傲朋学习网
if(k<=0) printf("####")Gcg傲朋学习网
else printf("&&&&");Gcg傲朋学习网
上面程序片段的输出结果是Gcg傲朋学习网
A.#### B.&&&& C.####&&&& D.有语法错误Gcg傲朋学习网
6、以下程序运行后,输出结果是Gcg傲朋学习网
#include Gcg傲朋学习网
#define PT 5.5Gcg傲朋学习网
#define S(x) PT*x*xGcg傲朋学习网
main( )Gcg傲朋学习网
{ Gcg傲朋学习网
int a=1,b=2;Gcg傲朋学习网
printf("%4.1f\n",S(a+b))Gcg傲朋学习网
}Gcg傲朋学习网
A.49.5 B.9.5 C.22.0 D.45.0Gcg傲朋学习网
7、设有以下语句:Gcg傲朋学习网
struct st {int n; struct st *next;};Gcg傲朋学习网
static struct st a[3]={5,&a[1],7,&a[2],9,'\0'}, *p;Gcg傲朋学习网
p=&a[0];Gcg傲朋学习网
则表达式_____的值不是6。Gcg傲朋学习网
A.p++ ->n B.p->n++ C.(*p).n++ D.(++p)->n
8、当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为Gcg傲朋学习网
if(aGcg傲朋学习网
if(cGcg傲朋学习网
else if(aGcg傲朋学习网
if(bGcg傲朋学习网
else x=3; Gcg傲朋学习网
else x=6; Gcg傲朋学习网
else x=7; Gcg傲朋学习网
A.1 B.2 C.3 D.6Gcg傲朋学习网
9、下面程序的输出是Gcg傲朋学习网
main()Gcg傲朋学习网
{ char *p1="abc",*p2="ABC",str[50]="xyz";Gcg傲朋学习网
strcpy(str+2,strcat(p1,p2));Gcg傲朋学习网
printf("%s\n", str);}Gcg傲朋学习网
A.xyzabcABC B.zabcABC C.yzabcABC D.xyabcABCGcg傲朋学习网
10、执行以下程序后,y的值是Gcg傲朋学习网
main ( )Gcg傲朋学习网
{ int a[]={2,4,6,8,10};Gcg傲朋学习网
int y=1,x,*p;Gcg傲朋学习网
p=&a[1];Gcg傲朋学习网
for(x=0;x<3;x++) y + = * (p + x);Gcg傲朋学习网
printf("%d\n",y); }Gcg傲朋学习网
A.17 B.18 C.19 D.20Gcg傲朋学习网
11、设已有定义: char *st="how are you"; 下列程序段中正确的是Gcg傲朋学习网
A.char a[11], *p; strcpy(p=a+1,&st[4]);Gcg傲朋学习网
B.char a[11]; strcpy(++a, st);Gcg傲朋学习网
C.char a[11]; strcpy(a, st);Gcg傲朋学习网
D.char a[], *p; strcpy(p=&a[1],st+2);Gcg傲朋学习网
12、若有说明:int i,j=7, *p=&i;,则与i=j;等价的语句是Gcg傲朋学习网
A.I= *P; B.*P=*&J; C.i=&j; D.i=* *p;Gcg傲朋学习网
13、执行语句:for(i=1;i++<4;)后;变量i的值是Gcg傲朋学习网
A.3 B.4 C.5 D.不定Gcg傲朋学习网
14、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是Gcg傲朋学习网
main( )Gcg傲朋学习网
{ int x;Gcg傲朋学习网
scanf("%d",&x);Gcg傲朋学习网
if(x + + >5) printf("%d",x);Gcg傲朋学习网
else printf("%d\n",x --); }Gcg傲朋学习网
A.7和5 B.6和3 C.7和4 D.6和4Gcg傲朋学习网
15、有以下程序Gcg傲朋学习网
void fun(int x,int y,int *cp,int *dp)Gcg傲朋学习网
{*cp=x+y; *dp=x-y;}
main()Gcg傲朋学习网
{Gcg傲朋学习网
int a,b,c,d;Gcg傲朋学习网
a=30;b=50;Gcg傲朋学习网
fun(a,b,&c,&d);Gcg傲朋学习网
printf("%d,%d\n",c,d);Gcg傲朋学习网
}Gcg傲朋学习网
输出结果是Gcg傲朋学习网
A.50,30 B.30,50 C.80,-20 D.80,20Gcg傲朋学习网
16、设有数组定义: char array [ ]="China"; 则数组 array所占的空间为Gcg傲朋学习网
A.4个字节 B.5个字节 C.6个字节 D.7个字节Gcg傲朋学习网
17、以下程序运行后,输出结果是Gcg傲朋学习网
fut(int **s, int p[2][3])Gcg傲朋学习网
{Gcg傲朋学习网
**s=p[1][1];Gcg傲朋学习网
}Gcg傲朋学习网
main()Gcg傲朋学习网
{Gcg傲朋学习网
int a[2][3]={1,3,5,7,9,11},*p;Gcg傲朋学习网
p=(int *)malloc(sizeof(int));Gcg傲朋学习网
fut(&p,a);Gcg傲朋学习网
printf("%d\n",*p);Gcg傲朋学习网
}Gcg傲朋学习网
A.1 B.7 C.9 D.11Gcg傲朋学习网
18、设j为int型变量,则下面for循环语句的执行结果是Gcg傲朋学习网
for(j=10;j>3;j--)Gcg傲朋学习网
{Gcg傲朋学习网
if(j%3)j--;Gcg傲朋学习网
--j;--j;Gcg傲朋学习网
printf("%d",j);Gcg傲朋学习网
}Gcg傲朋学习网
A.6 3 B.7 4 C.6 2 D.7 3Gcg傲朋学习网
19、设C语言中,一个int 型数据在内存中占2个字节,则unsigned int 型数据的取值范围为:Gcg傲朋学习网
A.0-255 B.1-32767 C.0-65535 D.0-2147483647Gcg傲朋学习网
20、设有如下定义:Gcg傲朋学习网
int (*ptr)*();Gcg傲朋学习网
则以下叙述中正确的是Gcg傲朋学习网
A.ptr是指向一维组数的指针变量Gcg傲朋学习网
B.ptr是指向int型数据的指针变量Gcg傲朋学习网
C.ptr是指向函数的指针,该函数返回一个int型数据Gcg傲朋学习网
D.ptr是一个函数名,该函数的返回值是指向int型数据的指针Gcg傲朋学习网
二、判断题(每小题2分,共20分)Gcg傲朋学习网
判断对错,并给出解析(判对错占1分,解析占1分)Gcg傲朋学习网
1、若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。( )Gcg傲朋学习网
2、全局变量使得函数之间的"耦合性"更加紧密,不利于模块化的要求。( )Gcg傲朋学习网
3、若调用一个有类型函数,而此函数中没有return语句,则返回一个不确定的值。( )Gcg傲朋学习网
4、用户若需要调用标准库函数,调用前必须重新定义。( )Gcg傲朋学习网
5、函数调用:strcat(strcpy(str1,str2),str3)的功能是将串str2复制到串str1中后再将串str3连接到串str1之后。( )Gcg傲朋学习网
6、在实际编程中,do-while循环完全可以用for循环替换。( )Gcg傲朋学习网
7、C程序的注释只能是一行。( )Gcg傲朋学习网
8、自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式。( )Gcg傲朋学习网
9、在函数内的复合语句中定义的变量在本函数范围内有定义。( )Gcg傲朋学习网
10、一个变量在内存中占据一定的存储单元。( )Gcg傲朋学习网
三、程序分析题(20分)Gcg傲朋学习网
说明:按表格相应项的要求,填出相应内容,运算无相应项或结果时,填“无”或“结束”。Gcg傲朋学习网
1、(7分)Gcg傲朋学习网
main( )Gcg傲朋学习网
{ Gcg傲朋学习网
int num[26]={0},i; char c;
while((c=getchar())!='#') Gcg傲朋学习网
{Gcg傲朋学习网
if( isupper(c)) num[c-'A']+=1;Gcg傲朋学习网
}Gcg傲朋学习网
for(i=0; i<26; i++) Gcg傲朋学习网
if(num[i]) printf("%c:%d\n,i +'A' , num[i]);Gcg傲朋学习网
}Gcg傲朋学习网
注:isupper(int c)为库函数,功能为判断字符c是否为大写英文字母,当参数c为大写英文字母时,返回非零值,否则返回零。Gcg傲朋学习网
输入 A B C A C a b cGcg傲朋学习网
num[c-'A'] 1 无 Gcg傲朋学习网
程序功能 Gcg傲朋学习网
2、(3分)Gcg傲朋学习网
int a, b, k=4, m=6, *p1=&k, *p2=&m;Gcg傲朋学习网
a=(pl==&m);Gcg傲朋学习网
b=(*p1)/(*p2)+7;Gcg傲朋学习网
表达式 结果Gcg傲朋学习网
pl==&m Gcg傲朋学习网
*p1 Gcg傲朋学习网
*p2 Gcg傲朋学习网
(*p1)/(*p2) Gcg傲朋学习网
a Gcg傲朋学习网
b Gcg傲朋学习网
3、(10分)Gcg傲朋学习网
#define N 10Gcg傲朋学习网
void invert(int *s,int i,int j)Gcg傲朋学习网
{ Gcg傲朋学习网
int t; Gcg傲朋学习网
if(iGcg傲朋学习网
{Gcg傲朋学习网
t=*(s+i);Gcg傲朋学习网
*(s+i)=*(s+j);Gcg傲朋学习网
*(s+j)=t;Gcg傲朋学习网
invert(s,i+1,j-1);Gcg傲朋学习网
}Gcg傲朋学习网
}Gcg傲朋学习网
int main()Gcg傲朋学习网
{ Gcg傲朋学习网
int a[N]={1,2,3,4,5,6,7,8,9,0};Gcg傲朋学习网
int i;Gcg傲朋学习网
Gcg傲朋学习网
invert(a,0,N-1);Gcg傲朋学习网
for(i=0; iGcg傲朋学习网
printf("\n"); Gcg傲朋学习网
return 0;Gcg傲朋学习网
} Gcg傲朋学习网
事项 值Gcg傲朋学习网
i 0 1 2 3 4 5Gcg傲朋学习网
j 9 Gcg傲朋学习网
iGcg傲朋学习网
invert完成操作 a[0],a[9]Gcg傲朋学习网
值互换 结束Gcg傲朋学习网
invert函数功能 Gcg傲朋学习网
四、编程题(每小题10分,共20分)Gcg傲朋学习网
编程题要求:Gcg傲朋学习网
(1)先给出伪代码,然后再写出源码,重要变量和语句要加注释;Gcg傲朋学习网
(2)若有子函数,则要给出函数框架设计(函数名、形参、返回类型)。Gcg傲朋学习网
1、计算1-1/2+1/3-1/4-...+1/99-1/100的值,并显示出来。Gcg傲朋学习网
2、从键盘输入一个5*5整型数组赋值,找出其中的最小值并显示出来。Gcg傲朋学习网
版权声明
声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益
请联系本站我们将配合处理!