高级语言程序设计(一)00342,历年真题,试卷

更新时间:2024-07-03 16:55:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

全国2001年10月自考高级语言程序设计(一)试题

课程代码:00342 第一部分 选择题

一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要

求的,请将正确选项前的字母填在题后的括号内。 1.C语言程序编译时,程序中的注释部分 A.参加编译,并会出现在目标程序中 B.参加编译,但不会出现在目标程序中 C.不参加编译,但会出现在目标程序中 D.不参加编译,也不会出现在目标程序中 2.下列表达式的值为0的是( )

A.3%5 B.3/5.0 C.3/5 D.3<5 3.正确的C语言用户自定义标识符是( )

A.print B.float C.when? D.random%2

4.设int a=3;则表达式a<1&&--a>1的运算结果和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(a>b)if(c>d)x=1;else x=2;等价的是( ) A.if(a>b){if(c>d)x=1;else x=2;} B.if(a>b){if(c>d)x=1;}else x=2; C.if((a>b)&&(c>d))x=1;else x=2; D.if(a<=b)x=2;else if(c>d) x=1;

8.设char x='a';则printf(\\n\;的输出是

A.x=a,y=97 B.x=97,y=a C.x=97,y=97 D.x=a,y=a 9.设int a[][4]={1,2,3,4,5,6,7,8,9};则数组a的第一维的大小是( ) A.2 B.3 C.4 D.无确定值 10.执行下列程序

int a[3][3]={{1},{2},{3}}; int b[3][3]={1,2,3}; main()

{printf(\\n”,a[1][0]+b[0][0]);} 后输出的结果是

A.0 B.1 C.2 D.3 11.设char str[100];int i=5;则引用数组元素的错误形式是( )

A.str[i+10] B.*(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

第 1 页

13.在函数内,定义变量时存储类型符可省略的是( )

A.auto B.static C.extern D.register 14.执行下列程序( ) int a=3,b=4;

void fun(int x1,int x2)

{printf(\ 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;} d[3]={{1,4},{2,5},{6,7}};

则printf(\;的输出是( )

A.2.5 B.2.0 C.8.0 D.8.4 16.设有定义语句:enum t1 {a1,a2=7,a3,a4=15}time; ( ) 则枚举常量a2和a3的值分别为

A.1和2 B.2和3 C.7和2 D.7和8

17.将一个整数10002存到磁盘上,以ASCII码形式存储和以二进制形式存储,占用的字节数分别是( A.2和2 B.2和5 C.5和2 D.5和5 18.在文件使用方式中,字符串\表示( ) A.打开一个已存在的二进制文件,只能读取数据 B.打开一个文本文件,只能写入数据

C.打开一个已存在的文本文件,只能读取数据 D.打开一个二进制文件,只能写入数据 19.执行下列程序( ) # define F(y) 15>>y

#define PRINT(a) printf(\ main() {

PRINT(F(2)); }

后输出的结果是

A.3 B.3.5 C.14 D.7.5

20.main()函数可以带两个形参,一般分为argc和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

25.设int i = 5;则循环语句while(i>=1)i--;执行后,i的值为____________。

26.被调函数在执行结束时,这个函数中定义的____________类型的变量不被释放。 27.设

struct student

第 2 页

{

int no;

char name[12]; float score[3]; }s1,*p=&s1;

用指针法给s1的成员no赋值1234的语句是____________。

28.C语言程序中对文本文件的存取是以____________为单位进行的。 29.设char string[]=\则数组的长度应是____________。 30.设int a[2][3]={{2},{3}};则数组元素____________的值为3。

三、程序分析题(本大题共5小题,每小题5分,共25分)阅读下列程序,将输出结果写到各题右侧的空白处 31.int a=200; main() {int i;

for(i=1;i<=5;i++) {a++;

printf(\ s(); } } s()

{static int a=20; a++;

printf(%d\\n\ }

32.# include \ main() {char c;

c=getchar();

if(c>='a'&&c<='w'||c>='A'&&c<='W')c=c+3;

else if(c>='x'&&c<='z')||c>='X'&&c<='Z')c=c-23; printf(\ }

设从键盘上输入Next ↙ 33.# define N 7 main()

{int i,j,temp,a[N]={1,2,3,4,5,6,7}; for(i=0;i

temp=a[i];a[i]=a[j];a[j]=temp; }

for(i=0;i

34.struct porb {char *name; int count;

}x[]={\ main()

第 3 页

{int i;

for(i=0;i<3;i++)

printf(\ }

35.main() {union

{short a;char ch; }M;

M.a=100;M.ch='A';

printf(\ }

四、程序填充题(本大题共3小题,每小题6分,共18分)给出下列程序,将横线处缺少的部分补上,使其能正确运

行。

36.以下程序的功能是用选择法对数组a中的整数由小到大进行排序。 void sort (int b[],int n) {int i,j,t;

for(i=0;i

{t=b[i];_________;b[j]=t;} }

main()

{ int a[]={5,8,6,2,7,4,1,3}; int i; sort(a,8);

for(i=0;i<8;i++) printf(\ printf(\ }

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(\ }

38.先为数组a输满数据,再为x输入一个数据,在数组a中找出第一个与x相等的元素并将其下标输出,若不存在

这样的元素,则输出“Not found!”标志。 main() { int i,x,a[10];

for(i=0;i<10;i++)scanf(\

第 4 页

scanf(\

for(i=0;i<10;i++)if(____________)break; if(i___10) printf(“position:%d\\n”,i); else printf(\ }

五、程序设计题(第39小题5分,第40、41小题各6分,共17分)。 39.求出10至1000之内能同时被2、3、7整除的数,并输出。 40.求1到100之间的奇数之和及偶数之和,并将二者输出。

41.输入一字符串,检查是否回文(回文是指正反序相同,如,LeveL),若是则输出“Yes”,否则输出“No”。

全国2001年10月自考高级语言程序设计(一)答案

课程代码:00342

一、单项选择题(本大题共20小题,每小题1分,共20分)

1.D 2.C 3.A 4.B 5.C 6.B 7.A 8.D 9.B 10.D 11.D 12.B 13.A 14.C 15.D 16.D 17.C 18.A 19.A 20.B 二、填空题(本大题共10小题,每小题2分,共20分) 21.double a=0.618 22.1

23.x>20&&x<=30或者(x>20)&&(x<=30) 24.2 25.0

26.静态存储,或者static

27.p->no=1234;或者(*p).no=1234; 28.字节 29.16

30。a[1][0]

三、程序分析题(本大题共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 ning:19 Lang ping:21 Zhu jian hua:20 35.2,65,A

四、程序填充题(本大题共3小题,每小题6分,共18分) 36.(1)j=i+1 (2)>

(3)b[i]=b[j]

第 5 页

main( ) { 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<=′Z′)fputc(ch+32,stdout); } fclose(fp); }

四、程序填充题(本大题共3小题,每小题6分,共18分) 给出下列程序,将横线处缺少的部分补上,使其能正确运行。 36.将一个十进制整数n转变为二进制数。

main( )

{ int i=0,j,n,num[20];

scanf(″%d″, ); /*第一空*/ while(n!=0)

{ num[i++]= ; /*第二空*/ n= ; /*第三空*/ }

for(j=i-1;j>=0;j--)printf(″%d″,num [j]); }

37.一个一维数组和一个二维数组同处一个共用型,将数据输入一维数组后,在二维数组中输出。

main( ) {union data { int a[10];

int b ;/*第一空*/ }; union data ab; int i,j;

for(i=0;i<10,i++)

scanf(″%d″, ); /*第二空*/ for(i=0;i<2;i++) for(j=0;j<5;j++)

printf(″]″, );/*第三空*/ }

38.用指针法输出二维数组,每行三个数。

main( )

{int i,j,a[3][3]={1,2,3,4,5,6,7,8,9},(*p)[3]; ; /*第一空*/

第 16 页

for(i=0;i<3;i++) {

for(j=0;j<3;j++) printf(″]″, ); /*第二空*/ ;/*第三空*/ } }

五、程序设计题(第39小题5分,第40、41小题各6分,共17分)

39.输出100之内所有个位数字为6且能被3整除的自然数。(如:36,66,96??) 40.键入一串字符(换行符结束),用循环语句将其中的大小写英文字母互换后输出。 41.设int a[3][4];先为数组输满数据,再将该数组周边的元素输出(元素输出次序不限)。

第 17 页

高级语言程序设计(一)答案2003年10月

第 18 页

第 19 页

全国2005年10月高等教育自学考试

高级语言程序设计(一)试题

课程代码:00342

一、单项选择题(本大题共20小题,每小题1分,共20分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1. 下列不.属于..C语言保留字的是( ) A. char B. while C. typedef

D. look

2. 下列关于C语言的叙述错误..的是( ) A. 英文字母大小写不加以区分

B. 不同类型的变量可以出现在同一个表达式中 C. 在赋值表达式中赋值号两边的类型可以不同 D. 某些运算符在不同的场合可以有不同的含义 3. 下列转义字符中错误..

的是( ) A. ′\\000′ B. ′\\14′ C. ′\\x111′ D. ′\\2′ 4. 执行语句printf(″%x″, -1);后输出结果是( ) A. -1 B. -ffff C. 1 D. ffff

5. 设float a=2, b=4, c=3;,以下C语言表达式与代数式12(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;条件表达式a

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的值是( ) A. 3 B. 4 C. 5 D. 不确定

9. 在位运算中,操作数左移一位,其结果相当于操作数( ) A. 乘以2 B. 除以2 C. 乘以4 D. 除以4

第 20 页

)

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.25□b=2.4 11. 下列说法中错误的是( ) ..A. C语言中循环嵌套的层数没有限定 B. C语言中的内部函数只能在本文件中被调用 C. 用typedef语句定义的数据类型名称必须是大写字母 D. C语言中的continue语句,可以通过改变程序的结构而省略 12. 设char s[10], *p=s;, 下列语句中错误的是( ) ..A. p=s+5; C. s[2]=p[4];

B. s=P+s; D. *p=s[0];

13. 设enum week {sun, mon, tue, wed, thu, fri, sat}day;,正确的赋值语句是( ) A. sun=0; B. sun=day; C. mon=sun+1;

D. day=sun;

14. 若用数组名作为函数调用时的实参,则实际上传递给形参的是( ) A. 数组的第一个元素值 B. 数组元素的个数 C. 数组中全部元素的值 D. 数组首地址 15. 下列错误的是( ) ..

A. char s[]=″China″; B. char s[10]={″China″}; C. char s[10]; s=″China″;

D. char s[10]={′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 18. 设

int x[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, *p=x, k;

且0≤k<10, 则对数组元素x[k]的错误引用是( ) ..

第 21 页

A. p+k B. *(x+k) C. x[p-x+k] D. *(&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. 若未指定局部变量的存储类型,则其隐含的存储类型是__________。

24. 在执行循环结构或switch结构时,能够立即退出该结构的语句是__________。 25. 设int a=-3, b=7, c=-1;则执行(a==0)&&(a=a%b

int a[2][3]={1, 2, 3, 4, 5, 6};

则数组元素a[1][0]的值是__________。

30. 函数调用时,若形参是一个变量,而对应的实参是一个有确定值的表达式,则函数参数的传递方式是__________传递。

三、程序分析题(本大题共5小题,每小题5分,共25分) 阅读下列程序,将输出结果写到各题右侧的空白处。 31. mian( ) { int i;

for(i=1;i<3;i++)f(i); } f(int j)

{ static int a=100; int k=1;

第 22 页

++k;

printf(″%d\\n″, 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(″%d\\t″, s); return s; } main( ) { fun(5); printf(″\\n″); } 33. struct 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;i

printf (″%s:%d\\n″, a[i]. name, a[i]. age); }

34. void LE(int*a, int b) {

int x=*a;

第 23 页

printf(″%d\\t%d\\n″, *a, b); *a=b;b=x; } main( ) {

int x=10, y=25; LE(&x, y);

printf(″%d\\t%d\\n″, 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分) 给出下列程序,将横线处缺少的部分补上,使其能正确运行。

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++) /*第一空*/ {

n=_________; /*第二空*/

if(a*a*a+b*b*b+c*c*c==_________) /*第三空*/

第 24 页

printf(″%d\\n″, n); } }

37. 输入一个数字(范围在0~9之间,若不在此范围内显示输入错),输出对应的英文单词(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(″%s\\n″, digit[_________]); /*第三空 */ else printf(″Input error! \\n″); }

38. 将一个文本文件(ma. dat)拷贝到另一个文本文件(niu. dat)中。 #include main( ) {

FILE *ma, *niu;

ma=fopen(″ma. dat″, ______); /*第一空 */ miu=fopen(″niu. dat″, ″w″);

while(! feof(ma)) fputc(fgetc(ma), ________); /*第二空 */ fclose(niu);__________; /*第三空 */ }

五、程序设计题(本大题共3小题,第39小题5分,第40、41小题各6分,共17分)

39. 输入某学生的数学(math)、英语(english)和C语言(C)的成绩,输出该学生这三门课的成绩、总成绩(sum)和平均成绩(aver)。

40. 按下列要求分别写出两个函数(不用写主函数) (1)计算n!

计算公式:n!=1×2×3×??×n 函数首部为log fac(int n) (2)调用上述函数计算Ckmcmk 计算公式: Ckm?m!

k!(m?k)!第 25 页

函数首部为long cmk(int m, int k)

41. 在一个二维数组(定义为int a[5][5];)中形成并按下列形式输出矩阵各元素的值。 1 0 0 0 0 2 1 0 0 0 3 2 1 0 0 4 3 2 1 0 5 4 3 2 1

2005年10月自考高级语言程序设计(一)试卷参考答案

一、l.D 2.A 3.C 4.D 5.B 6.A 7.A 8.C 9.A l0.C ll.C l2.B l3.D l4.D l5.C l6.B 17.D l8.A l9.B 20.A

二、21.return或返回语句 22.3

23.auto型或自动型 24.break 25.一3 26.10 27.100 28.本文件 29.4 30.值 三、31.103 102

32.2 5 9 14 33.LiHUfl:18 WangXin:25 LiuGu0:21 34.10 25

25 25 35.5523

第 26 页

37.第一空:&n 第二空;i>=0&&i<=9

第三空:i

40.(1)long fac(int n)

第 27 页

全国2010年10月高级语言程序设计(一)试题

课程代码:00342

一、单项选择题(本大题共15小题,每小题2分,共30分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1.用户自定义标识符正确的是( ) A.3ab B.int C.fa2_a D.sin(x) 2.关于C语言程序描述正确的是( ) A.函数必须要有return语句 B.主函数必须位于程序的开头 C.程序中每行只能写一条语句 D.一个程序中只能有一个主函数 3.设int i=8,a,b;double x=1.42,y=5.2;,正确的表达式是( ) A.a+=(b=4)*(a=3) B.a=a*3=2 C.x%(-3)+y* *3 D.y=float(i) 4.设int a[][2]={1,2,3,4,5,6,7};,其中缺省的行长度的最小值是( A.2 B.3 C.4 D.5 5.设char c=′A′;int i=1,j;,执行语句j=!c&&i++;后,i和j的值分别是( A.0和1 B.1和0 C.1和65 D.2和66 6.设typedef char STRING[255];STRING*s;,则s是( ) A.字符数组 B.字符变量 C.字符指针数组 D.字符指针变量 7.设int x=6;,执行语句X+=X-=X*X;后,x的值是( ) A.-60 B.0 C.6 D.36 8.设int i=3,j=3;,表达式i+++j的值是( ) A.6 B.7 C.8 D.9 9.下列为C语言保留字的是( ) A.real B.long C.pointer D.integer 10.设int a=2,b=6,c=8;,表达式(a,b),(c,10)的值是( ) A.2 B.6 C.8 D.10 11.变量定义并初始化正确的是( ) A.int a=l,*p=a; B.int a=2,p=*a; C.int a=3,p=&a; D.int a=4,*p=&a; 12.使用递归函数计算n!(n=0,1,2,,3,....)的是( ) A. fac(int n) B. fac(int n) {int i,f=- 1; { if(n==0) return 1; if(n==0‖n==1) return 1; else for(i=1 ;i<=n;i++) f*=i; else return n*fac(n-1); return f; }

第 28 页

) )

}

C. fac(int n) D. fac(int n) {int i=l,f=l; {int i=1,f=1; if(n==0) return l; if(n==0) return 1; else while(i<=n) f*=i++; else do { f*=i;}while (i++

A.stu.age B.p->age C.*p.age D.(*p).age 14.设int a[2]={1,2},*p=a;,则*p是( ) A.元素a[0]的值 B.元素a[0]的地址 C.元素a[1]的值 D.元素a[1]的地址

15.设int a[10];,对数组元素引用正确的是( ) A.a[10] B.a[′0′] C.a(6) D.a[10-10]

二、填空题(本大题共10小题,每小题2分,共20分)

请在每小题的空格中填上正确答案。错填、不填均无分。

16.执行语句printf(\%d\\n\,strlen(\后,输出结果是_______。 17.设int a,b,c;,表达式a=2,b=5,b++,a+b的值是__________。 18.设int a=1,b=2,m=2,n=2;,执行表达式(m=a

int x=3;

do{ptintf(\%5d\,x-=2);}while(!(--x));

21.执行语句for(i=10;i>0;i--,);后,变量i的值是___________。 22.设int x,y;,循环语句for(x=0,y=0;(y!=10)&&(x<5);x++);执行的次数是______。 23.若函数内定义变量的存储类别是static,该变量被称为___________静态变量。 24.设int x=3;,执行语句printf((x%2)?(\%d\n\:(\%d\\n\,x);后,输出结果是__________。 25.设char s[3]=\,*p=s;,则*(p+2)的值是_______。 三、程序分析题(本大题共4小题,每小题4分,共16分)

阅读下列程序,将输出结果写到各题右侧的空白处。 26.

void main( ) {

int i=0,j =0,k=0; while (i< 10) i++; while (j++

printf (\} 27.

int a;

第 29 页

fun(int i) {

a+=2*i; return a; }

void main( ) {

int a=10;

printf(\} 28.

void main( ) (

int a=0, b=0, d=0; char *s=\for(; *s!= ′\\0′; s++) switch(*s) {

case ′a′: a++; break; case ′b′: b++; break; default: d++; }

printf(\} 29.

#define M 2<3 ? 5:6 void main( ) {

int i=3, j, k; j=i+M; k=i+(M);

printf (\}

四、程序填充题(本大题共3小题,每小题6分,共18分)

请将下列程序横线处缺少的部分补上,使其能正确运行。

30.键入数据至二维数组,求出其中的最大值、最小值及所有元素之和。

void main( ) {

int i,j;

int a[3][4],max, min, sum=0; for(i=0;i<3 ;i++)

for(j =0 ;j <4 ;j ++) scanf(\第一空*/ max=min=a[0][0]; for(i=0;i<3 ;i++) for(j =0 ;j <4 ;j ++) {

______;/*第二空*/

第 30 页

if(a[i] [j]>max) max=a[i] [j]; if(a[i] [j]

}

printf(\%d,min=%d,sum=%d\\n\,______);/*第三空*/ }

31.将26个小写英文字母中的元音字母(a,e,i,o,u)写入到文件vo.txt中。

#include\void main( ) {

char_____;/*第一空*/ FILE *fp;

fp=fopen(\,\;

for(ch=′a′;ch<=′z′;ch++)

if(______________)fputc(ch,fp);/*第二空*/ _________;/*第三空*/ } 32.根据迭代公式x1?1a(x0?),求a的平方根(精度要求x1?x0<10-6)。 2x0#define EPS 1E-6

#include_____ /*第一空*/ void main( ) {

float a,x0,x1=1.0; scanf(\%f\,&a); do {

x0=x1;

x1=_______;/*第二空*/

}while(fabs(x1-x0)>=_____);/*第三空*/ printf(\%.6f\n\; }

五、程序设计题(本大题共2小题,每小题8分,共16分)

33.从键盘输入三条边a、b和c,若能构成三角形则输出其面积,否则输出不能构成三 角形的提示信息“No triangle”。 三角形面积计算公式area?s(s?a)(s?b)(s?c)其中:s=(a+b+c)/2。

34.(1)编写一个函数change( )实现两个实型变量的值交换;

(2)写出主函数,从键盘上输入两个数,然后调用函数change()交换两个实型数的值并输出。

第 31 页

2010年10月自考高级语言程序设计(一)参考答案

第 32 页

第 33 页

全国2011年10月自学考试高级语言程序设计(一) 试题

课程代码:00342

一、单项选择题(本大题共1 5小题,每小题2分,共30分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或 未选均无分。

1.自定义标识符由字母、数字或下划线组成,且第一个字符必须是( A.数字 B.字母或数字 C.数字或下划线

D.字母或下划线

2.运算符优先级符合由高到低排列的一组是( ) A.+、!=、&&、= B.&&、!=、+、= C.!=、+、=、&&

D.&&、=、!=、+

3.转义字符中正确的是( ) A.'\\' B. '\\xyz' C.'\\\\'

D. '\\820' 14.下列程序段执行后x、y和z的值分别是( ) int x=10,y=20,z=30; if(x>y)z=x;x=y;y=z; A.10,20,30 B.20,30,30 C.20,30,10

D.20,30,20

5.下列程序段执行后的输出结果是( ) int k=-4,a=3,b=2,c=l; printf(\%d/n\,k

D.4

6.关于for(表达式1;表达式2;表达式3),叙述正确的是( ) A.表达式1不可以缺省 B.表达式2不可以缺省 C.表达式3不可以缺省

D.三个表达式都可以缺省

7.设int*p[4];,则标识符p是( ) A.整型数组名 B.指针数组名

C.指针函数名

D.指向整型变量的指针 8.在循环结构中,continue语句的作用是( ) A.继续执行本次循环 B.提前退出多重循环 C.提前结束本次循环

D.提前退出本重循环

第 34 页

)

9.数组定义及初始化正确的是( ) A.char a[5]={}; C.char a={\;

1O.设int m;,与while(!m)等价的是( ) A.while(m!=0) C.While(m=O)

B.while(m=1) D.while(m!=1)

B.int a[5]={0,1,2,3,4,5};

D.char a[]={'0','1','2','3','4','5'};

11.设char*s l=\*s2=\;,执行语句printf(\%d\\n\,strlen(strcpy(sl,s2)));后的输出结果是( ) A.4 B.5 C.9

D.1O

12.下列不属于C语言数据类型的保留字是( ) A.real B.void C.float

D.double 13.设int i,j=7,*p=&j;,与赋值语句i=j;等价的是( ) A.i=&p; B.p=*&j; C.p=&j;

D.i=*p:

14.正确表示数学关系式x≥y≥z的C语言表达式是( ) A.x>=y>=z B.(x>=y)&&(y>=z) C.(x>=y)&(y>=z)

D.(x>=y)||(y>=z)

15.设struct student{char name[10];char sex;}stu;,则sizeof(stu)的值是( A.2 B.1O C.11

D.12

第 35 页

)

二、填空题(本大题共10小题,每小题2分,共20分) 请在每小题的空格中填上正确答案。错填、不填均无分。

16.设int a=2,b=3;float x=3.5,y=2.5;,表达式(float)(a+b)/2+(int)x%(int)y的值是______。 17.设int i;,语句for(i=l;i=10;i++)++i;循环的次数是______。 l8.数组名作为实参传给被调用的函数时,形参获得的是______。 19.设int x=9;,执行语句printf(\%d\\n\,x<<2);后的结果是______。

20.设char c[5]={'c','d','\\0','e','\\0'};,执行语句printf(\%s\\n”,c);后的结果是______。 21.设int a[2][3],p;,将数组a的最后一个元素赋值给变量P的正确语句是______。 22.字符串\在内存中占用的字节数是______。

23.设int x=l,y=1;,则执行表达式--x&&y++后,y的值是______。 24.函数的自我调用被称为______调用。

25.设char w;int x;float y;double z;,则表达式w*x+z-y的值的类型是______。 三、程序分析题(本大题共4小题,每小题4分,共1 6分) 阅读下列程序,将输出结果写到各题右侧的空白处。 26.

void main() {

int n=9;

if(n++

} 27.

void fun(int x, int y, int z) {

z=x*x+y*y; printf(\ }

void main()

{

int a=31; fun(5,2,a); printf(\ } 28.

void main()

第 36 页

{

int a[]={O,9,8,7,6,5,4,3,2,1},*p=a; printf(\%d,%d\n\,*p+9,*(p+9)); } 29.

func(int a) {

static int m=O; m+=a;

printf(\%d\\n\,m); }

void main() {

int k=4;

func(k);func(k); }

四、程序填充题(本大题共3小题,每小题6分,共18分) 请将下列程序横线处缺少的部分补上,使其能正确运行。 30.求数组a的所有元素之和。 #define N 3 void main() {

int i,j,sum=0;

int a[N][N]={2,4,6,8,10,12,14,16,18}; for(i=0;i

}

31.键入一个字符串(不超过80个字符)存至字符数组s中并对各元素升序排序。 #include void main() {

int i,j,len; char s[81],t; gets(s);

第 37 页

puts(s); len=strlen(s); for(i=O;i

for(j=i+1;j

{ t=s[i]

s[i]=s[j];

______; /*第三空*/

} puts(s); }

32.输入一个正整数,若是素数(或称质数)则输出“Yes”,否则输出“No”。 void main() {

int i,n;

scanf(\%d\,______); /*第一空*/ printf(\%d\,n); for(i=2;i

if(n%i==O)______; /*第二空*/ if(______)printf(\\n\; /*第三空*/ else printf(”No\\n”); }

五、程序设计题(本大题共2小题,每小题8分,共16分)

33.从键盘输入一串字符(!作为结束标志),保存到文件“user.dat”中。 34.某幼儿园入园分班规定如下:

?若1~3岁进入小班,输出标志\??若4岁进入中班,输出标志\ ?若5~6岁进入大班,输出标志\??其它年龄不得入园,输出标志\'t enter\?输入某个孩子的年龄后,输出其分班情况(要求使用switch语句)。

第 38 页

2011年10月全国自考高级语言程序设计(一)参考答案

第 39 页

第 40 页

本文来源:https://www.bwwdw.com/article/hmk.html

Top