武汉大学计算机学院2A_武汉大学计算机学院

2020-02-29 其他范文 下载本文

武汉大学计算机学院2A由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“武汉大学计算机学院”。

武汉大学计算机学院

2005-2006学年度第2学期2005级

《高级语言程序设计》期末考试试卷A卷

姓名:学号:专业:说明:未经主考教师同意,考试试卷、答题纸、草稿纸均不得带离,否则视为违规。

(选择最合适的答案填空,每小题2分,共20分)A.Case B._12 C.else D.eve()1. 下面的文字中是不正确的变量名。

()2. 下面的四个选项中,正确的字符型常量是______。

A.‘68’ B.‘t’ C.“n” D.‘xdh’

()3. 表达式sizeof(float)的结果为类型。

A.单精度 B.双精度 C.整型 D.不合法的()4. 设有变量定义:int m=0,n=0;则执行表达式(m-->=0)||(n++

的值为______。

A.-1和0 B.-1和1 C.0和0 D.0和

1()5. C语言的编译系统对宏命令是

A.在程序执行时处理的C.和源程序其他语句一起编译 B.在程序连接时处理的 D.在对源程序中其它成分正式编

译之前进行处理的()6. 以下正确的程序语句段为。

A.char s1[]=”123456”,s2[]=”abcdef”;strcat(s1,s2);

B.char *s1=”1234”,*s2=”abcde”;strcpy(s1,s2);

C.char*s1,*s2=”1234”;strcpy(s1,s2);

D.char s1[10]=””,s2[5]=”1234”;strcat(s1,s2);

()7. 设int a[3][4],(*p)[4];p=a;则表达式*(p+1)等价于。

A.&a[0][1] B.a+1 C.&a[1][0] D.a[1][0]

()8. 如果执行打开文件函数fopen()时发生错误,该函数返回值为________。

A.EOF B.NULL C.-1 D.随机值

()9. 若有以下说明和语句,则下面四个选项中对ttd中lab域的正确引用方

式是

struct example{

char lab;

int num;

}ttd, *p;

p=&ttd;

A.(*p).lab B.p->ttd.lab C.(*p).ttd.lab D.p.ttd.lab

()10. 表达式(int)(6.8+7/2)的结果是。

A.10 B.9 C.11 D.8

二. 文字填空(共15分)

1. break语句出现在循环语句中的作用是______________。

2. 如果int类型数据在内存中占据2个字节,则int类型数据取值范围为

从_________到___________。

3. 在C语言中,全局变量定义时在数据类型前面增加前缀static,则表示

该变量仅在__________内有效。

4. 设x、y为char类型变量,请写出以下命题:

(1)x和y都为大写字母_________________________________

(2)x和y中至少一个是数字______________________________

5. 假设a=3,b=7,c=5,则表达式a

则表达式q-p的结果等于____________。

7. 库函数malloc(sizeof(long))的作用是_

_________。

8. 表达式10&12的结果等于。

三. 程序填空(请在空白处填写合适内容以正确完成整个程序,共10

分)

1. 以下程序的功能是:统计100到1000之间各位数字之和为8的数据个数。#include

void main()

{ int i,s,k,count=0;

for(i=100;i

{)

{ s=s+k%10;

}

if(s!=8)

count++;

}

printf(“%d”,count);

}

2.下面程序的功能是:从一个字符串中删除指定字符,例如,从字符串”Prolog”中删除字符’o’,则结果为”Prlg”。

#include

{ int i=0,j;

while(⑦)

{if(s[i]==c)

{j=⑧;

while(⑨)

{ s[j]=s[j+1];

j++;

}

}

else

⑩;

}

void main(void)

{ char s[20],c;

gets(s);

getchar(c);

deletechar(s,c);

puts(s);

}

四. 程序阅读与分析(共10分)

1.分析以下程序执行流程,并写出下列程序的运行结果。

#include

int x=0;

int fat(int n)

{static int f=0;

x+=2;

f=f+n;

return(f);

}

void main(void)

{int i,j;

for(i=3;i

{printf(“%dt”,fat(i));

printf(“%dn”,x);

}

}

2.阅读以下递归函数,假设有如下定义:int a[6]={6,1,4,7,4,0};分析进行

printn(a)调用时程序运行过程;并写出该调用产生的运行结果。

#include

void printn(int *x)

{ if(*x!=0)

printn(x+1);

if(*x%2)printf(“%d,”,*x*2);

else printf(“%d,”,*x);

}

五.

1.子程序设计(每小题15分,共30分)本题说明:完成函数设计时,请自行说明所有的形式参数的类型 设计一个函数getnum(s,&n),字符串s是十六进制字符串,函数getnum

统计s的字符个数并作为函数值返回,另外n返回s对应的十进制整数数据值。

例如,有如下定义,char s[]=”12a”,n,m;

则有函数调用m=getnum(s,&n)后,m的值为3,n的值为298即等于1×162+2×16+10=298。

2.设计一个函数rightarr(a, m, n),a为一维整数数组(数组元素的个

数为m),该函数实现数组a的循环左移n位。

例如:有如下定义,int a[5]={1,2,3,4,5};

则,rightarr(a,5,2)调用完成后,数组a的内容为{3,4,5,1,2}。六.

说明:

 算法设计(选做一题15分)仅需任意选做一题。多选者,以卷面先列出的为判分依据; 分析思路、重要数据类型的定义、模块的功能、形式参数、函数返回值说明; 用伪代码或其它方法描述子程序; 不必完整写出函数程序的代码,完整代码将不作为判分依据。

1.函数link(h,n),其中h 是一个由整数组成的从小到大排列的有序单链

表,n为整数。函数link实现把n按照顺序插入到链表h中,函数返回值为完成插入n之后的有序链表中结点个数。

具体要求如下:

A)说明链表结点类型的C语言定义形式;

B)给出函数link(h,n)的原型。

C)描述函数的算法。

2.任意输入一个年、月、日,编程实现判断该日期是星期几。

具体要求如下:

D)说明如何表示一个日期数据,以及星期一到星期天;

E)说明程序中划分多少模块?并给出每个模块的原型;

F)描述每个模块的算法。

《武汉大学计算机学院2A.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
武汉大学计算机学院2A
点击下载文档
相关专题 武汉大学计算机学院 武汉 大学计算机 学院 武汉大学计算机学院 武汉 大学计算机 学院
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文