《自学考试高级语言程序设计历年真题和答案 .pdf》由会员分享,可在线阅读,更多相关《自学考试高级语言程序设计历年真题和答案 .pdf(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 1 页2001 年 10 月自考高级语言程序设计(一)试题第一部分选择题一、单项选择题(本大题共20 小题,每小题1 分,共 20 分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。1.C 语言程序编译时,程序中的注释部分A.参加编译,并会出现在目标程序中B.参加编译,但不会出现在目标程序中C.不参加编译,但会出现在目标程序中D.不参加编译,也不会出现在目标程序中2.下列表达式的值为0 的是()A.3%5 B.3/5.0 C.3/5 D.35 3.正确的 C 语言用户自定义标识符是()A.print B.float C.when?D.rando
2、m%2 4.设 int a=3;则表达式a1的运算结果和a 的值分别是()A.0 和 2 B.0 和 3 C.1 和 2 D.1 和 3 5.下列叙述中,正确的是()A.引用带参的宏时,实际参数的类型应与宏定义时的形式参数类型相一致B.宏名必须用大写字母表示C.宏替换不占用运行时间,只占编译时间D.在程序的一行上可以出现多个有效的宏定义6.下列保留字中用于构成循环结构的是()A.if B.while C.switch D.default 7.与语句 if(ab)if(cd)x=1;else x=2;等价的是()A.if(ab)if(cd)x=1;else x=2;B.if(ab)if(cd)x
3、=1;else x=2;C.if(ab)&(cd)x=1;else x=2;D.if(ad)x=1;8.设 char x=a;则 printf(x=%c,y=%c n,x,97);的输出是A.x=a,y=97 B.x=97,y=a C.x=97,y=97 D.x=a,y=a 9.设 int a4=1,2,3,4,5,6,7,8,9;则数组 a的第一维的大小是()A.2 B.3 C.4 D.无确定值10.执行下列程序int a33=1,2,3;int b33=1,2,3;main()printf(%d n”,a1 0+b00);后输出的结果是A.0 B.1 C.2 D.3 11.设 char s
4、tr100;int i=5;则引用数组元素的错误形式是()A.str i+10B.*(str+i)C.*(str+i-1)D.*(str+)+i)12.设 int x=1,2,3,4,5,6,*p=x;则值为 3 的表达式是()A.p+=2,*+p B.p+=2,*p+C.p+=3,*p D.p+=2,+*p 13.在函数内,定义变量时存储类型符可省略的是()名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 42 页 -第 2 页A.auto B.static C.extern D.register 14.执行下列程序()int a=3,b=4;void fun(int x1,in
5、t x2)printf(%d,%dn,x1+x2,b);main()int a=5,b=6;fun(a,b);后输出的结果是A.3,4 B.11,1 C.11,4 D.11,6 15.设有定义语句struct int a;float b;d3=1,4,2,5,6,7;则 printf(%3.1fn,d2.a*d2.b/d1.b);的输出是()A.2.5 B.2.0 C.8.0 D.8.4 16.设有定义语句:enum t1 a1,a2=7,a3,a4=15time;()则枚举常量a2 和 a3 的值分别为A.1 和 2 B.2 和 3 C.7 和 2 D.7 和 8 17.将一个整数10002
6、 存到磁盘上,以ASCII 码形式存储和以二进制形式存储,占用的字节数分别是()A.2 和 2 B.2 和 5 C.5 和 2 D.5 和 5 18.在文件使用方式中,字符串rb 表示()A.打开一个已存在的二进制文件,只能读取数据B.打开一个文本文件,只能写入数据C.打开一个已存在的文本文件,只能读取数据D.打开一个二进制文件,只能写入数据19.执行下列程序()#define F(y)15y#define PRINT(a)printf(%d,a)main()PRINT(F(2);后输出的结果是A.3 B.3.5 C.14 D.7.5 20.main()函数可以带两个形参,一般分为argc和
7、argv,其中 argv 可以定义为()A.int argv B.char*argv;C.char argv;D.char*argv;第二部分非选择题二、填空题(本大题共 10 小题,每小题2 分,共 20 分)21.初始化值是0.618 的双精度变量a 的定义形式为 _。22.表达式!10!=1 的值是 _。23.“20=1)i-;执行后,i 的值为 _。26.被调函数在执行结束时,这个函数中定义的_类型的变量不被释放。27.设struct student 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 42 页 -第 3 页int no;char name12;float s
8、core3;s1,*p=&s1;用指针法给s1 的成员 no 赋值 1234 的语句是 _。28.C 语言程序中对文本文件的存取是以_为单位进行的。29.设 char string=This_is_a_book!;则数组的长度应是_。30.设 int a23=2,3;则数组元素_的值为 3。三、程序分析题(本大题共5 小题,每小题5 分,共 25 分)阅读下列程序,将输出结果写到各题右侧的空白处31.int a=200;main()int i;for(i=1;i=a&c=A&c=x&c=X&c=Z)c=c-23;printf(%n,c);设从键盘上输入Next 33.#define N 7 m
9、ain()int i,j,temp,aN=1,2,3,4,5,6,7;for(i=0;iN/2;i+)j=N-1-i;temp=ai;ai=aj;aj=temp;for(i=0;iN;i+)printf(%5d,ai);34.struct porb char*name;int count;x=Li ning,19,Lang ping,21,Zhu jian hua,20;main()int i;名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 42 页 -第 4 页for(i=0;i3;i+)printf(%s:%dn,xi.name,xi.count);35.main()unio
10、n short a;char ch;M;M.a=100;M.ch=A;printf(%d,%d,%cn,sizeof(M),M.a,M.ch);四、程序填充题(本大题共3 小题,每小题6 分,共 18 分)给出下列程序,将横线处缺少的部分补上,使其能正确运行。36.以下程序的功能是用选择法对数组a 中的整数由小到大进行排序。void sort(int b,int n)int i,j,t;for(i=0;in-1;i+)for(_;in;i+)if(bi_bj)t=bi;_;bj=t;main()int a=5,8,6,2,7,4,1,3;int i;sort(a,8);for(i=0;i8;i
11、+)printf(%5d,ai);printf(n);37.输入一字符串(换行为结束标志)统计其中数字(0,1,2,,,9 不单独统计)、空白和其它字符出现的次数。#include“stdio.h main()char c;int_;while(c=getchar())!=n)if(_)digit+;else if(c=|c=t)+blank;else_;printf(digit=%d,blank=%d,other=%dn,digit,blank,other);38.先为数组a输满数据,再为x 输入一个数据,在数组a 中找出第一个与x 相等的元素并将其下标输出,若不存在这样的元素,则输出“No
12、t found!”标志。main()int i,x,a10;for(i=0;i10;i+)scanf(%d,_);scanf(%d,&x);printf(%d,x);名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 42 页 -第 5 页for(i=0;i20&x20)&(xno=1234;或者(*p).no=1234;28.字节29.16 30。a10 三、程序分析题(本大题共5 小题,每小题5 分,共 25 分)31.201,21 202,22 203,23 204,24 205,25 32.Q(若结果为Qhaw,只得 3 分)33.7 6 5 4 3 2 1 34.Li ni
13、ng:19 Lang ping:21 Zhu jian hua:20 35.2,65,A 四、程序填充题(本大题共3 小题,每小题6 分,共 18 分)36.(1)j=i+1(2)(3)bi=bj 37.(1)digit=0,blank=0,other=0(2)c=0&c=9 名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 42 页 -第 6 页(3)+other 或者 other+38.(1)&ai 或者 a+i(2)x=ai(3)五、程序设计题(第 39 小题 5 分,第 40、41 小题各 6 分,共 17 分)39.main()int i;for(i=10;i=1000;
14、i+)if(i%2=0)&(i%3=0)&(i%7=0)printf(i=%dn,i);40.main()int a=0,b=0,i;for(i=2;i=100;i+=2)a+=i;b+=i-1;printf(Sum of even number=%dn,a);printf(Sum of odd number=%dn,b);41.#include string.h main()int i,n;static char str80;gets(str);n=strlen(str);for(i=0;ib)printf(%dn,a);printf(%dn,b);B.printf(%dn,b);if(ab
15、)printf(%dn,a);C.if(ab)printf(%dn,a);else printf(%dn,b);D.if(ab)printf(%dn,a);printf(%dn,b);6.执行语句“for(s=0,i=1;i=10;i=i+3)s+=i;”后,变量s、i 的当前值是()A.22,13 B.12,10 C.22,10 D.12,13 7.下列各语句定义了数组,其中一个不正确的是()A.static int a 5,b2 3;B.char no30,rec 30,6;C.int x =2,4,6,8,10;D.int x 10=1,2,3,4,5;8.宏定义“define p(x,
16、y,z)x=y*z;”的宏替换“p(a,x+5,y3.1)”应为()A.a=x+5*y3.1 B.a=(x+5)*(y3.1);C.a=x+5*y3.1 D.a=(x+5)*(y3.1)9.下列语句定义p 为指向 float 类型变量d 的指针,其中哪一个是正确的()A.float d,*p=d;B.float d,*p=&d;C.float d,p=d;D.float*p=&d,d;10.执行语句“for(i=0;i10;+i,+a)scanf(%d,a);”试图为int 类型数组a10输入数据,是错误的。错误的原因是()A.指针变量不能做自增运算B.数组首地址不可改变C.+i 应写作 i+
17、D.+a 应写作 a+11.定义函数时,缺省函数的类型声明,则函数类型取缺省类型()A.void B.char C.float D.int 12.执行语句“k=53;”后,变量k 的当前值是()A.1 B.8 C.7 D.2 名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 42 页 -第 8 页13.执行语句“k=53;”后,变量k 的当前值是()A.15 B.125 C.8 D.6 14.以“只读”方式打开文本文件a:aa.dat,下列语句中哪一个是正确的()A.fp=fopen(a:aa.dat,ab);B.fp=fopen(a:aa.dat,a);C.fp=fopen(a:
18、aa.dat,wb);D.fp=fopen(a:aa.dat,r);15.写字符到磁盘文件的fpuc 函数,其函数原型(头)正确的是()A.FILE*fputc(char)B.int fputc(FILE*)C.int fpuc(char,FILE*)D.int fputc(FILE*,char)二、填空题(每空 1 分,共 15 分)1.设 int a=5,b=2;float c=32.8;,表达式 b*(int)c%a 的值为 _。2.计算 a、b中最小值的条件表达式为_。3.计算 x、y 之和的立方根,表达式应写作_。4.判断变量a、b、c 的值是否是等差数列中连续的三项,写作C 的表达
19、式为 _。5.判断变量a、b 的值均不为0 的 C 表达式为 _。6.执行语句“a=5+(c=6);”后,变量a、c 的值依次为 _。7.整型变量x 的值为 23,语句“printf(%o n,x);”的输出结果为_。8.执行语句“n=1;if(n=5)n+;后,变量n 值为 _。9.执行语句“s=0;n=5;while(n)s+=n;”后,变量s、n 值依次为 _。10.执行语句“for(s=0,i=1;i11;i+)if(i=6)continue;s+=i;后,s 值为 _。11.若声明“char a=windows ,b=9x;”,执行语句“printf(%s,strcat(a,b);”
20、的输出结果为_。12.若声明“char a15=Windows9x;”,语句“printf(%s,a+8);”的输出结果为_。13.程序中使用了字符串函数(如 strlen),则必须包含的头文件名为_。14.访问结构体数组元素ak的成员b,写作 _。15.a、b 都是结构体变量,语句“a=b;”能够执行的条件是_。三、程序阅读题,读下列程序,在程序旁的划线处写出程序的输出结果。每行2 分,共 24 分)1.include void main()输出结果:_ int i;_ for(i=1;i5;i+)printf(%dt%c n,i,A+i);_ _ 2.include void main()
21、int i,j,a 4 4;for(i=0;i4;i+)for(j=0;j4;j+)a i j=1+ij;for(i=0;i4;i+)for(j=0;j0)printf(%3d,ai j);_ putchar(n);_ _ 3.include void f(float a,float b,float*c)名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 42 页 -第 9 页 static float x;float y;x=(y=ab?a:b)x?y:x;*c=x;void main()float a 5=2.5,1.5,7.5,4.5,6.5,x;for(int i=0;i4;
22、i+)输出结果:_ f(ai,a i+1,&x);_ printf(%.1fn,x);_ _ 四、根据下列各编程题题意填空(每空 2 分,共 24 分)1.输入 2 个整数,输出它们的最小公倍数和最大公约数。include void main()int m,n,gbs,gys;scanf(1);gbs=m;while(2)gbs=gbs+m;gys=(3);(4);2.下列函数sum的返回值为一个整数m 的所有因子之和。(1)int s=1;i;for(2);inum&(2)p2=p1;p1=p1next;if(3)if(p1=h)h=p1next;else(4);printf(delete:
23、%1dn,n);else printf(%1d not been found!n,n);return h;五、编程题(第 1 小题 6 分,其他小题各8分,共 22 分)1.编程,先输入n,再输入n 个实数并分别统计正数的和、负数的和,然后输出统计结果。2.编程,输入a1、a2、.、a15名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 42 页 -第 10 页1111111231415aaaaa3.把文本文件x1.dat 复制到文本文件x2.dat 中,要求仅复制x1.dat 中的非空格字符。浙江省 2002 年 1 月高等教育自学考试高级语言程序设计(一)试题参考答案课程代码:
24、00342 一、单项选择题(每小题 1 分,共 15 分)1.B 2.C 3.C 4.C 5.C 6.A 7.B 8.A 9.B 10.B 11.D 12.C 13.D 14.D 15.C 二、填空题(每空 1 分,共 15 分)1.4 2.ab 15.a、b 为同类型的结构体变量三、程序阅读题(每行 2 分,共 24 分)1.1 B 2.1 3.2.5 2 C 2 1 7.5 3 D 3 2 1 7.5 4 E 4 3 2 1 7.5 四、根据下列各编程题题意填空(每空 2 分,共 24 分)1.(1)%d%d,&m,&n(2)gbs%n!=0(3)m*n/gbs 名师资料总结-精品资料欢迎
25、下载-名师精心整理-第 10 页,共 42 页 -第 11 页(4)printf(%d%dn,gbs,gys);2.(1)int sum(int m)(2)i=2(3)m%i=0(4)return s 3.(1)return h(2)p1next!=NULL(3)n=p1num(4)p2next=p1next 五、编程题(第 1 小题 6 分,其他小题各8分,共 22 分)1.include void main()int i,n;float x,s1=0;s2=0;scanf(%d,&n);for(i=1;i0)s1+;if(x0)s2+;printf(%f%fn,s1,s2,);2.incl
26、ude void main()float a 15,y;int i;for(i=0;i=0;i)y=1+a i(1+y);printf(%fn,y);3.include void main()char ch;FILE*fp1,*fp2;fp1=fopen(x1.dat,r);fp2=fopen(x2.dat,w);while(!feof(fp1)ch=fgetc(fp1);if(ch!=)fputc(ch,fp2);fclose(fp1);fclose(fp2);名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 42 页 -第 12 页全国 2003 年 10月高等教育自学考试高
27、级语言程序设计(一)试题课程代码:00342 第一部分选择题(共 20分)一、单项选择题(本大题共20 小题,每小题1 分,共 20 分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1组成 C 语言程序的是()A.过程B.函数C.子程序D.主程序和子程序2编译程序的功能是()A.将汇编语言程序转换为目标程序B.将汇编语言程序转换为高级语言程序C.将高级语言程序转换为目标程序D.将高级语言程序转换为汇编语言程序3C 语言中定义某个内部变量时,如果省略了存储类型符,则系统将默认该变量是()A.自动型B.寄存器型C.静态型D.外部参照型4
28、不用第三个变量,将变量a 和 b 的值进行互换的操作是()A.a+=b;b-=a;a-=b;B.a+=b;b=a-b;a-=b;C.b-=a;a-=b;a-=b;D.b-=a;a=b-a;a+=b;5自动型变量分配在()A.内存的数据区中B.CPU 的通用寄存器中C.内存的程序区中D.内存的堆栈区中6下列程序段运行后,x 的值是()a=1;b=2;x=0;if(!(-a)x-;if(!b)x=7;else+x;A.0 B.3 C.6 D.7 7对 do-whie 语言错误的说法是()A.可构成多重循环结构B.循环次数不可能为0 C.循环次数可能为0 D.先执行后判断名师资料总结-精品资料欢迎下
29、载-名师精心整理-第 12 页,共 42 页 -第 13 页8设 int x=1,a=9,b=6,c=7,d=8;则执行语句:if(ab)if(cd)x=2;else x=3;后,x 的值是()A.1 B.2 C.3 D.不确定9设 char str110=ABCDE,str210=XYZ;则执行语句:printf(%d,strlen(strcpy(str1,str2);后的输出是()A.3 B.5 C.8 D.9 10初始化一维数组a 正确的语句是()A.int a10=(0,0,0,0,0);B.int a10=;C.int a=10;D.int a10=10*1;11语句 int(*p)
30、();的含义是()A.p 是一个指向函数的指针变量,该函数的返回值是一个整型数据B.p 是指针变量,指向一个整型数据C.p 是一个指向一维数据的指针变量D.p 是指针函数12设 int a10,*p=a;则对数组元素的正确引用是()A.ap B.pa C.*(p+2)D.p+2 13对于程序段float f1(int a)int b;,main()int m,n;m=f1(n);,char f2(int x,int y)int a;,变量 m,n 的作用范围是()A.整个程序段B.main 函数C.main 函数和 f2 函数D.mian 函数和 f1 函数14若函数中局部变量的值经函数调用后
31、仍保留,则该局部变量定义为()A.自动变量B.内部变量C.外部变量D.静态变量15在下列运算符中,优先级最低的是()A.!B.C.()D.16对于如下定义的枚举型enum list1 x1,x2,x3,x4=6,x5,x6;枚举常数x2 和 x6 的值分别是()A.1,6 B.1,8 名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 42 页 -第 14 页C.2,6 D.2,8 17对于文件操作方式rb+,准确的说法是()A.可读写文本文件B.只读二进制文件C.只读文本文件D.可读写二进制文件18数据-324 在二进制文件和文本文件中所占的字节数分别是()A.2,2 B.2,4
32、 C.4,2 D.4,4 19设 int a=1,b=2,c=4;经过表达式(c=a!=b)&(a=b)&(c=b)运算后,a、b 和 c 的值分别是()A.1,2,0 B.1,2,1 C.1,2,2 D.1,2,3 20下列程序的运行结果是()#define EVEN(x)x%2=0?1:0 main()if(EVEN(9+1)printf(is even);else printf(is odd);A.is even B.出错C.无结果D.is odd 第二部分非选择题(共 80 分)二、填空题(本大题共10 小题,每小题2 分,共 20 分)请在每小题的空格中填上正确答案。错填、不填均无分
33、。21设 char a,b;则表达式a/b-c的值的类型为。22设 int k=-1;执行 printf(%u,k);后输出的值是。23设 for(k=0;k0;k+)+k;则该循环共执行次。24设 int a=1,b=2;经表达式a=a b,b=ab,a=ab 运算后 a,b 的值分别是。25表示空类型的保留字是。26已知程序段:char*p=abcdefgh;p+=4;printf(%cn,*p+);运行结果为。27设struct student int no;char name12;char sex;float score4;stu1;在程序执行时,系统为stu1 分配个字节的内存空间。
34、名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 42 页 -第 15 页28写出“n 是小于整数m 的偶数”的表达式。29字符串 ABCDt123 的长度是。30设 union int b;char a9;float x;un;则变量 un 所占的字节数是。三、程序分析题(本大题共5 小题,每小题5 分,共 25 分)阅读下列程序,将输出结果写到各题右侧的空白处31sum(int n)if(n=1)return(1);else return n+sum(n-1);main()printf(%dn,sum(10);32设从键盘输入282 sub(int n)int s=1;do
35、s*=n%10;n/=10;while(n);return s;main()int n;scanf(%d,&n);n=sub(n);printf(%dn,n);33#define N 7#define PRINT for(i=0;iN;i+)printf(%5d,ai);printf(n);main()int i,j,temp,aN=1,2,3,4,5,6,7;PRINT for(i=0,iy?x:y;return y;名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 42 页 -第 16 页 main()int x=100;printf(%dn,sub(x,y);printf(
36、%d,%dn,x,y);35.设文件 file1.c 的内容为COMPUTER#include stdio.hmain()FILE*fp;char ch;if(fp=fopen(file1.c,r)=NULL)printf(Cannot open file n );exit(0);while(!feof(fp)ch=fgetc(fp);if(ch=A&ch=0;j-)printf(%d,num j);37一个一维数组和一个二维数组同处一个共用型,将数据输入一维数组后,在二维数组中输出。main()union data int a10;int b;/*第一空*/;union data ab;in
37、t i,j;名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 42 页 -第 17 页for(i=0;i10,i+)scanf(%d,);/*第二空*/for(i=0;i2;i+)for(j=0;j5;j+)printf(%5d,);/*第三空*/38用指针法输出二维数组,每行三个数。main()int i,j,a33=1,2,3,4,5,6,7,8,9,(*p)3;/*第一空*/for(i=0;i3;i+)for(j=0;j3;j+)printf(%5d,);/*第二空*/;/*第三空*/五、程序设计题(第39 小题 5 分,第 40、41 小题各 6 分,共 17 分)39输
38、出 100 之内所有个位数字为6 且能被 3 整除的自然数。(如:36,66,96,)40键入一串字符(换行符结束),用循环语句将其中的大小写英文字母互换后输出。41设 int a34;先为数组输满数据,再将该数组周边的元素输出(元素输出次序不限)。名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 42 页 -第 18 页高级语言程序设计(一)答案2003 年 10 月名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 42 页 -第 19 页名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 42 页 -第 20 页全国 2005 年 10月高等教育自学
39、考试高级语言程序设计(一)试题课程代码:00342 一、单项选择题(本大题共20 小题,每小题1 分,共 20 分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.下列不属于C 语言保留字的是()A.char B.while C.typedef D.look 2.下列关于C 语言的叙述错误的是()A.英文字母大小写不加以区分B.不同类型的变量可以出现在同一个表达式中C.在赋值表达式中赋值号两边的类型可以不同D.某些运算符在不同的场合可以有不同的含义3.下列转义字符中错误的是()A.000B.14C.x111D.24.执行语句prin
40、tf(%x,-1);后输出结果是()A.-1 B.-ffff C.1 D.ffff 5.设 float a=2,b=4,c=3;,以下 C 语言表达式与代数式21(a+b)c 计算结果不一致的是()A.(a+b)*c/2 B.(1/2)*(a+b)*c C.(a+b)*c*1/2 D.c/2*(a+b)6.设 int a=10,b=20,c=30;条件表达式ab?a=5c 的值是()A.5 B.10 C.20 D.30 7.设 int a=9,b=6,c;,执行语句c=a/b+0.8;后 c 的值是()A.1 B.1.8 C.2 D.2.3 8.执行语句for(i=1;i+4);后 i 的值是
41、()A.3 B.4 C.5 D.不确定名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 42 页 -第 21 页9.在位运算中,操作数左移一位,其结果相当于操作数()A.乘以 2 B.除以 2 C.乘以 4 D.除以 4 10.使用语句scanf(a=%f,b=%f,&a,&b);输入变量a、b 的值(代表空格),正确的是()A.1.25,2.4 B.1.25 2.4 C.a=1.25,b=2.4 D.a=1.25b=2.4 11.下列说法中错误的是()A.C 语言中循环嵌套的层数没有限定B.C 语言中的内部函数只能在本文件中被调用C.用 typedef 语句定义的数据类型名称必
42、须是大写字母D.C 语言中的continue 语句,可以通过改变程序的结构而省略12.设 char s10,*p=s;,下列语句中错误的是()A.p=s+5;B.s=P+s;C.s2=p4;D.*p=s 0;13.设 enum week sun,mon,tue,wed,thu,fri,satday;,正确的赋值语句是()A.sun=0;B.sun=day;C.mon=sun+1;D.day=sun;14.若用数组名作为函数调用时的实参,则实际上传递给形参的是()A.数组的第一个元素值B.数组元素的个数C.数组中全部元素的值D.数组首地址15.下列错误的是()A.char s=China;B.c
43、har s10=China;C.char s 10;s=China;D.char s10=C,h,i,;n,a;16.在 C 语言中,有值函数的数据类型是指()A.函数形式参数的数据类型B.函数返回值的数据类型C.调用该函数时的实参的数据类型D.任意指定的数据类型17.设struct short a;char b;float c;cs;则 sizeof(cs)的值是()A.4 B.5 C.6 D.7 名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 42 页 -第 22 页18.设int x=1,2,3,4,5,6,7,8,9,0,*p=x,k;且 0 k10,则对数组元素xk的
44、错误引用是()A.p+k B.*(x+k)C.xp-x+kD.*(&x k)19.设#define N 3#define Y(n)(N+1)*n)则表达式2*(N+Y(5+1)的值是()A.42 B.48 C.54 D.出错20.关于主函数的形式参数,下列说法正确的是()A.可以有两个B.类型可以是实型C.不可以由用户自己定义名字D.是在程序编译时获得实际值二、填空题(本大题共 10 小题,每小题2 分,共 20 分)21.可以将被调函数中获得的值返回给主调函数的语句是_。22.设 int x=2,y=1;则表达式x+y 的值是 _。23.若未指定局部变量的存储类型,则其隐含的存储类型是_。2
45、4.在执行循环结构或switch 结构时,能够立即退出该结构的语句是_。25.设 int a=-3,b=7,c=-1;则执行(a=0)&(a=a%bb/c);后变量 a 的值是 _。26.设 int a,b,c;则执行 a=(b=3,c=5,b=10);后变量 a 的值是 _。27.设 int a=100,*pl=&a,*p2=&p1;,则表达式*p2 的值是 _。28.静态型外部变量的作用域是_。29.设int a 2 3=1,2,3,4,5,6;则数组元素a1 0的值是 _。30.函数调用时,若形参是一个变量,而对应的实参是一个有确定值的表达式,则函数参数的传递方式是_传递。三、程序分析题
46、(本大题共5 小题,每小题5 分,共 25 分)阅读下列程序,将输出结果写到各题右侧的空白处。31.mian()int i;for(i=1;i3;i+)f(i);名师资料总结-精品资料欢迎下载-名师精心整理-第 22 页,共 42 页 -第 23 页f(int j)static int a=100;int k=1;+k;printf(%dn,j+a+k);a-=2;32.#include long fun(int n)long s;if(n=2)s=2;else s=n+fun(n-1);printf(%dt,s);return s;main()fun(5);printf(n);33.stru
47、ct porb char*name;int age;s=LiHua,18,WangXin,25,LiuGuo,21;#define N(sizeof(s)/sizeof(s 0)void f(struct porb a ,int n);main()f(s,N);void f(struct porb a ,int n)int i;for(i=0;in;i+)printf(%s:%dn,ai.name,ai.age);名师资料总结-精品资料欢迎下载-名师精心整理-第 23 页,共 42 页 -第 24 页34.void LE(int*a,int b)int x=*a;printf(%dt%dn,*
48、a,b);*a=b;b=x;main()int x=10,y=25;LE(&x,y);printf(%dt%dn,x,y);35./*设从键盘输入:420*/#include main()char c;while(c=getchar()!=n)switch(c-0)case 0:case 1:putchar(c+2);case 2:putchar(c+3);break;case 3:putchar(c+4);default:putchar(c+1);break;printf(n);四、程序填充题(本大题共3 小题,每小题6 分,共 18 分)给出下列程序,将横线处缺少的部分补上,使其能正确运行
49、。36.一个三位整数(100 999),若各位数的立方和等于该数自身,则称其为“水仙花数”(如:153=13+53+33),找出所有的这种数。main()int n,a,b,c;/*n、a、b 和 c 分别为三位数自身及其个位、十位和百位*/for(c=1;c=9;c+)for(b=0;b=9;b+)for(_;a+)/*第一空*/名师资料总结-精品资料欢迎下载-名师精心整理-第 24 页,共 42 页 -第 25 页 n=_;/*第二空*/if(a*a*a+b*b*b+c*c*c=_)/*第三空*/printf(%dn,n);37.输入一个数字(范围在 09 之间,若不在此范围内显示输入错)
50、,输出对应的英文单词(Zero,One,Two,,Nine)。main()int i;char*digit 10=Zero,One,Two,Three,Four,Five,Six,Seven,Eight,Nine;scanf(%d,_);/*第一空*/printf(%d,i);if(_)/*第二空*/printf(%sn,digit_);/*第三空*/else printf(Input error!n);38.将一个文本文件(ma.dat)拷贝到另一个文本文件(niu.dat)中。#include main()FILE*ma,*niu;ma=fopen(ma.dat,_);/*第一空*/miu