西安电子科技大学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傲朋学习网
版权声明

声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系本站我们将配合处理!

分享: