武汉大学计算机学院c语言部分年份试题

上传人:xzh****18 文档编号:34572689 上传时间:2018-02-25 格式:DOC 页数:16 大小:174KB
返回 下载 相关 举报
武汉大学计算机学院c语言部分年份试题_第1页
第1页 / 共16页
武汉大学计算机学院c语言部分年份试题_第2页
第2页 / 共16页
武汉大学计算机学院c语言部分年份试题_第3页
第3页 / 共16页
武汉大学计算机学院c语言部分年份试题_第4页
第4页 / 共16页
武汉大学计算机学院c语言部分年份试题_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《武汉大学计算机学院c语言部分年份试题》由会员分享,可在线阅读,更多相关《武汉大学计算机学院c语言部分年份试题(16页珍藏版)》请在金锄头文库上搜索。

1、武汉大学计算机学院2004-2005 学年度第 2 学期 2004 级高级语言程序设计期末考试试卷 A 卷答案及评分标准一 单项选择题:(选择最合适的答案填空,每小题 2 分,共 20 分)( )1不正确的常量是_B_ 。A. t B. 084 C. 1.2e4 D. 0x8fL( )2表达式-8%3+13/2 的结果为_D 。A. 4.5 B. 8 C. 8.5 D. 4( )3设变量 int a=1,b=2; 则执行表达式 a+=3,b-2,+b,a*=b 后变量 a和 b 的值为_C 。A. 2 和 2 B. 3 和 3 C. 12 和 3 D. 12 和 2( )4表达式 0xad86

2、|0xff 的值为_A_ 。A. 0xadff B. 0x86 C. 0xad86 D. 0xff( )5设有如下宏定义 #define price(x) 5+x则执行赋值语句 v=price(4)*price(15);/*v 为 int 型变量*/后,v 的值为 C 。A. 180 B. 85 C. 40 D. 60( )6在定义指针变量时,void *类型表明指针_ A 。A. 指向对象类型未知B. 不指向任何对象C. 指向整型的对象D. 指向 char 类型对象( )7设 int a34,*p3; 则以下_C_赋值语句是正确的。A. p=a0; B. p1=a; C. p1=a2; D.

3、 p=a;( )8创建一个新的文本文件,可对该文件进行读写操作,则_A_打开方式是正确的。A. “w+” B. “wb” C. “r+” D. “rb+”( )9表达式 4&5 结果为_B 。A. 0 B. 1 C. 4 D. 5( )10 正确的标识符是_A 。A. _a123 B. 3z C. “next” D. A二 文字填空(共 15 分)1 一个合理的算法应该具有“有穷性” , “有穷性”指的是_经过有限个步骤的处理以后,算法应该结束_。2 %作为运算符表示_取余数 _。3 在 C 语言中,_全局变量_变量和_静态(局部静态)_变量在程序一开始执行就被分配内存空间,直到整个程序执行结

4、束其内存空间才被释放。4 设 x、y 为 int 类型变量,请写出以下命题:(1) x 和 y 都为偶数 _(x%2=0)&(y%2=0) 或者 (!(x%2)&!(y%2)_(2) x 和 y 中至少一个能被 3 整除 _(x%3=0)|(y%3=0) 或者_(!(x%3)|!(y%3)_5 编译预处理命令#include 的作用是_文件包含_。6 设有如下定义 int (*ptr)5; 则表示定义的 ptr 是_指向一维数组的指针_或者 数组_变量。7 完成字符串连接的库函数是_strcat()_。8 typedef int A12; 的作用是_定义类型名 A,表示类型 int 12_。三

5、 程序填空(请在空白处填写合适内容以完成整个程序,共 10 分)1 以下程序实现从键盘输入一个整数,然后以相反的顺序输出每位数字。例如:输入 1234,则输出 4321。#include void main() int number,right;printf(“enter your number:n”);scanf(“%d”, do right= number%10 ;printf(“%d”,right);number= number/10 ;while( number!=0 );printf(“n”);a) 下面程序将若干字符串按照字典顺序排列并输出#include #include voi

6、d sort( char *s ,int n) int i,j;char *t;for(i= 0 ;i0 ) t=si;si=sj;sj=t;void main()char *s5=“Pascal,”C language”,”Prolog”,”fortran”,”Visual C+”;int i;sort(s,5);for(i=0;ivoid main() int j;for(j=1;jlong fib(int g) switch(g) case 0:return 0;case 1:case 2:return 1;return(fib(g-1)+fib(g-2);解答:调用完成后 k 的值为

7、13(注意:评分时如果试卷中给出 k的值不正确或者没有给出 k的值,但分析程序执行流程基本正确给分不超过 3分。 )五 子程序设计(每小题 15 分,共 30 分)本题说明:完成函数设计时,请自行说明所有的形式参数的类型1. 设计一个函数 strcpy(s1,s2),将字符串 s1 复制到字符串 s2 中,且函数strcpy()返回值为实际复制到 s2 中字符个数。例如:函数调用 strcpy(“asdfgh”,s2)完成后,字符串 s2 中内容为”asdfgh”,函数返回值为 6。解答:int strcpy(char *s1,char *s2) /*函数原型 3 分*/ int n=0; /

8、*2 分*/while(*s1=*s2)!=0) /*3 分*/ s1+; /*1 分*/s2+; /*1 分*/n+; /*1 分*/return n; /*2 分*/*语法 2 分*/2. 设计一个函数 delarr(a, m, n),a 为一个已经按照从小到大排列的一维整数数组(数组元素的个数为 m) ,从数组 a 中删除所有等于 n 的元素,且函数返回值为删除 n 以后数组 a 余下的元素个数。例如:int a5=1,2,2,3,4;则,delarr(a,5,2)调用完成后,数组 a 的内容为1,3,4,0,0,函数返回值为 3。解答:int delarr(int *a,int m,i

9、nt n) /*函数原型 3 分*/ int i,j,k=m; /*1 分*/for(i=0;i=0)|(n+ttd.lab C. (*p).ttd.lab D. p.ttd.lab( )10 表达式(int)(6.8+7/2)的结果是_B_ 。A. 10 B.9 C.11 D.8二 文字填空(共 15 分)1. break 语句出现在循环语句中的作用是_终止整个循环的执行_。2. 如果 int 类型数据在内存中占据 2 个字节,则 int 类型数据取值范围为从_-32768_到_32767_。3. 在 C 语言中,全局变量定义时在数据类型前面增加前缀 static,则表示该变量仅在_本文件内

10、或者定义它的文件中或者整个程序_ 内有效。4. 设 x、y 为 char 类型变量,请写出以下命题:(1) x 和 y 都为大写字母 _(x=A&x=A&y=0&x=0&yvoid main() int i,s,k,count=0;for(i=100;i0 或 者 k=1 ) s=s+k%10;k= k/10 ;if (s!=8) break ;count+;printf(%d,count);2. 下面程序的功能是:从一个字符串中删除指定字符,例如,从字符串”Prolog”中删除字符o,则结果为 ”Prlg”。#include void deletechar( char *s 或者 char

11、s , char c) int i=0,j;while( si!=0或者 si!=0 或者 si 或者 si0 )if(si=c) j= i ;while( sj!=0或者 sj!=0 或者 sj或者 sj0 ) sj=sj+1;j+;else i+或者+i 或者 i=i+1 或者 i+=1 ;void main(void) char s20,c; gets(s);getchar(c);deletechar(s,c);puts(s);填 si+!=0或者 si+!=0 或者 si+ 或者 si+0填 continue 算正确四 程序阅读与分析(共 10 分)1. 分析以下程序执行流程,并写出下

12、列程序的运行结果。#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;ivoid printn(int *x) if(*x!=0)printn(x+1);if(*x%2) printf(“%d,”,*x*2);else printf(“%d,”,*x);答案: 0,4,14,4,2,6评分要点:给出答案 6,2,4,14,4,0 给 4 分,如果结果完全不对,但是给出程序执行流程分析基本正确,最多给 3 分五 子程序设计(每小题 15 分,共 3

13、0 分)本题说明:完成函数设计时,请自行说明所有的形式参数的类型1. 设计一个函数 getnum(s,&n),字符串 s 是十六进制字符串,函数getnum 统计 s 的字符个数并作为函数值返回,另外 n 返回 s 对应的十进制整数数据值。例如,有如下定义, char s=”12a”;int n,m;则有函数调用 m=getnum(s,&n)后,m 的值为 3,n 的值为 298 即等于1162+216+10=298。参考答案#include int getnum(char s,int *m) int n,sum=0;n=0;while(sn!=0) switch(sn)case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:sum=s*16+sn-0;break;case a:case b:case c:case d:case e:case f:sum

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题 > 高中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号