全国2007年1月高等教育自学考试高级语言程序设计(一)试题

发布日期:2019-11-26 11:28:56 编辑整理:新疆自考网 【字体: 【学历咨询】
立即购买

《自考视频课程》名师讲解,轻松易懂,助您轻松上岸!低至199元/科!

课程代码:00342

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

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

1.以下正确的C语言自定义标识符是(   )

A._la                                                                       B.2a_

C.do                                                                        D.a.12

2.在C语言中,错误的常数表示是(   )

A.0L                                                                        B.-0x6aL

C.′6′                                                                   D.1.234E3.5

3.设int a,x=2;执行语句a=x>0?3*x(x=10);后,变量x的值是(   )

A.1                                                                          B.2

C.6                                                                          D.10

4.设有以下程序段:

int x=2,y=2,z=0,a;

a=++x||++y&&z++;

printf(″%d,%d,%d\n″,x,y,z);

执行后输出的结果是(   )

A.2,2,0                                                               B.3,3,1

C.3,2,0                                                               D.3,2,1

5.在C语言中,字符串″\\TOP\t\65\″″的长度是(   )

A.5                                                                          B.7

C.9                                                                          D.12

6.设float x;,由键盘输入:12.45,能正确读入数据的输入语句是(   )

A.scanf(″%5f″,&x);                                              B.scanf(″%5d″,&x);

C.scanf(″%f″,x);                                                  D.scanf(″%s″,&x)

7.逗号表达式a=2*6,a*3,a+5的值是(   )

A.12                                                                        B.17

C.36                                                                        D.41

8.C语言表达式3.26*exp(x)+(a+b)/3所表示的数学表达式是(   )

A.3.26x+                                                     B.3.26xe+

C.3.26ex+                                                    D.3.26lnx+

9.在C语言中,下列运算符中结合性属于自右向左的是(   )

A.&&                                                                      B.--

C.<<                                                                       D.->

10.设int(*p)[4];,则p的含义是(   )

A.指向整型变量的指针数组

B.指向4个整型变量的函数指针

C.4个指向整型变量的指针变量

D.指向具有4个整型元素的一维数组的指针

11.设char x[][10]={″Windows″,″dos″,″unix″};,执行pintf(″%c″,x[1][2]);后输出的结果是(   )

A.n                                                                          B.i

C.o                                                                          D.s

12.设int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(* ptr)[3]=a,*p=a[0];,则与数组元素a[1][2]等价的是(   )

A.*((p+2)+3)                                                    B.*(*(p+3))

C.(*ptr+1)+2                                                         D.*((ptr+1)[2])

13.设int a=11,b=2;,执行下述程序段后,变量a和b的值分别是(   )

do

{a/=b++;

}while(a>b);

A.1,3                                                                       B.1,4

C.2,3                                                                       D.2,4

14.在C语言中,下列错误的说法是(   )

A.函数可以递归调用

B.不允许在函数中再定义函数

C.递归程序不可能用非递归算法实现

D.对于continue语句,可以通过改变程序的结构而不使用它

15.设int a[2][3]={{1},{2,3}};,则元素a[1][0]的值是(   )

A.0                                                                          B.1

C.2                                                                          D.3

16.若main()带参数,正确的是(   )

A.main(int argc,char*argv)                                        B.main(int argc,char*argv[])

C.main(int argc,char argv[][])                                    D.main(int argc,char argv[])

17.设

struct student

{ char name[10];

int sex;

int num;

}s,*p=&s;

以下对结构型变量s中成员num的非法引用是(   )

A.p->num                                                                B.(*p).num

C.s.num                                                                   D.student.num

18.下列说法中正确的是(   )

A.C语言的预处理命令只有宏定义和文件包含

B.预处理命令只能出现在主函数之前

C.所有预处理命令都是以符号″#″开头

D.有些预处理命令不是在源程序编译之前处理

19.设enum week {mon,tue=2,wed,thu,sat=6}day;,则枚举常量mon和thu的值分别是(   )

A.0和4                                                                   B.1和4

C.0和3                                                                   D.1和5

20.下列属于文件包含的命令是(   )

A.#define N 25                                                         B.#endif

C.#include ″stdio.h″                                             D.#else

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

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

21.一个C语言程序的执行起点是__________。

22.设int x=3,y=5;,则执行printf(″%d\n″,x^y);后输出__________。

23.设int s[3][2]={1,2,3,4,5,6},(*p)[2]=s;,则*(*(p+1)+1)的值是__________。

24.C语言中,可以处理的两类文件分别是文本文件和__________。

25.设int a=2;,则执行a+=a*=15;后,变量a的值是__________。

26.设double y[4][5];,则数组y中元素的个数是__________。

27.设int x=7,y=3,则表达式x%y+x/y的值是__________。

28.设char s[]={″apple″};,则执行printf(″%d\n″,strlen(s));后输出的值是__________。

29.设

union

{

int i;

char j[10];

float k;

}u;

则sizeof(u)的值是__________。

30.设

#define MOD(a,b)a%b

main()

{ int x=4,y=16,z;

z=MOD(y,x);

printf(″%d\n″,z++);

}

则程序执行的结果是__________。

三、程序分析题(本大题共5小题,每小题5分,共25分)

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

31.main()

{int x=15;

while(x<20)

{x++

if(x/3!=0){x++;break;}

else continue;

}

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

}

32.fun(int a[],int i,int j)

{int t;

if(i<j)

{t=a[i];a[i]=a[j];a[j]=t;

i++;j--;

fun(a,i,j);

}

}

main()

{int x[]={2,4,6},i;

fun(x,0,2);

for(i=0;i<3;i++) printf(″%2d″,x[i]);

printf(″\n″);

}

33./*程序运行时,输入一个整数5*/

main()

{int a,b[10],c,i=0;

printf(″输入一个整数\n″);

scanf(″%d″,&a);

while(a!=0)

{c=a%2;

a=a/2;

b[i]=c;

i++;

}

for(;i>0;i--)printf(″%d″,b[i-1]);

}

34.# include <stdio.h>

main()

{int a,b,i;

a=b=0;

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

{a+=i;

b+=i+1;

}

printf(″a=%d\n″,a);

printf(″b=%d\n″,b-11);

}

35.int a=100;

s()

{static int a=20;

a++

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

}

main()

{int i;

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

{a++;

printf(″%d,″,a);

s();

}

}

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

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

36.对含有10个元素的数组a先按元素的存储次序倒序输入,再按其正序输出。

#define_______/*第一空*/

main()

{int i,a[N];

for(i=N-1; _______;i--)/*第二空*/

scanf(″%d″, _______);/*第三空*/

for(i=0;i<N;i++)printf(″%d\t″,a[i]);

printf(″\n″);

}

37.学生成绩的字母等级和分数范围如下:

字母等级                                                    分数范围

 A                                                              90~100

 B                                                              80~89

 C                                                              70~79

 D                                                              60~69

 E                                                              0~59

其它字母                                                    输入错误

输入字母等级之后,输出相应的分数范围。

main()

{

_______;/*第一空*/

scanf(″%c″,&score);

switch(score)

{

case′A′:printf(″A:90~100\n″);_________;/*第二空*/

case′B′:printf (″B:80~89\n″);break;

case′C′:printf (″C:70~79\n″);break;

case′D′:printf (″D:60~69\n″);break;

case′E′:printf (″E: 0~59\n″);break;

_______:printf(″输入错误\n″);/*第三空*/

}

}

38.文本文件num.dat中含有若干个整数,将这些数据读出后求出它们的和,再将这些数据与它们的和分别显示到屏幕上。

#include<stdio.h>

main()

{int num;long int sum=0L;

FILE*fp;

fp=fopen(″num.dat″, ″r″);

do

{

fscanf(________,&num);/*第一空*/

sum+=_________;/*第二空*/

printf(″%5d″,num);

}while(_______);/*第三空*/

printf(″\nsum=%ld\n″,sum);

fclose(fp);

}

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

39.输入两个实型数x和y,计算并输出它们的和、差、积和商。

40.输入自变量x的值后,计算并输出y的值。

计算公式:y=

41.用循环结构输出下列数字金字塔(共9行)。

1

121

12321

1234321

……………

12345678987654321


关注新疆自考网微信公众号

其他人还看了:
免责声明

《新疆自考网》免责声明:

1、由于各方面情况的调整与变化,本网提供的考试信息仅供参考,考试信息以省考试院及院校官方发布的信息为准。

2、本网信息来源为其他媒体的稿件转载,免费转载出于非商业性学习目的,版权归原作者所有,如有内容与版权问题等请与本站联系。联系邮箱:812379481@qq.com。

新疆自考-便捷服务

全国2007年1月高等教育自学考试高级语言程序设计(一)试题

编辑:新疆自考网  时间:2019-11-26 11:28:56  阅读(
立即购买

《自考视频课程》名师讲解,轻松易懂,助您轻松上岸!低至199元/科!

课程代码:00342

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

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

1.以下正确的C语言自定义标识符是(   )

A._la                                                                       B.2a_

C.do                                                                        D.a.12

2.在C语言中,错误的常数表示是(   )

A.0L                                                                        B.-0x6aL

C.′6′                                                                   D.1.234E3.5

3.设int a,x=2;执行语句a=x>0?3*x(x=10);后,变量x的值是(   )

A.1                                                                          B.2

C.6                                                                          D.10

4.设有以下程序段:

int x=2,y=2,z=0,a;

a=++x||++y&&z++;

printf(″%d,%d,%d\n″,x,y,z);

执行后输出的结果是(   )

A.2,2,0                                                               B.3,3,1

C.3,2,0                                                               D.3,2,1

5.在C语言中,字符串″\\TOP\t\65\″″的长度是(   )

A.5                                                                          B.7

C.9                                                                          D.12

6.设float x;,由键盘输入:12.45,能正确读入数据的输入语句是(   )

A.scanf(″%5f″,&x);                                              B.scanf(″%5d″,&x);

C.scanf(″%f″,x);                                                  D.scanf(″%s″,&x)

7.逗号表达式a=2*6,a*3,a+5的值是(   )

A.12                                                                        B.17

C.36                                                                        D.41

8.C语言表达式3.26*exp(x)+(a+b)/3所表示的数学表达式是(   )

A.3.26x+                                                     B.3.26xe+

C.3.26ex+                                                    D.3.26lnx+

9.在C语言中,下列运算符中结合性属于自右向左的是(   )

A.&&                                                                      B.--

C.<<                                                                       D.->

10.设int(*p)[4];,则p的含义是(   )

A.指向整型变量的指针数组

B.指向4个整型变量的函数指针

C.4个指向整型变量的指针变量

D.指向具有4个整型元素的一维数组的指针

11.设char x[][10]={″Windows″,″dos″,″unix″};,执行pintf(″%c″,x[1][2]);后输出的结果是(   )

A.n                                                                          B.i

C.o                                                                          D.s

12.设int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(* ptr)[3]=a,*p=a[0];,则与数组元素a[1][2]等价的是(   )

A.*((p+2)+3)                                                    B.*(*(p+3))

C.(*ptr+1)+2                                                         D.*((ptr+1)[2])

13.设int a=11,b=2;,执行下述程序段后,变量a和b的值分别是(   )

do

{a/=b++;

}while(a>b);

A.1,3                                                                       B.1,4

C.2,3                                                                       D.2,4

14.在C语言中,下列错误的说法是(   )

A.函数可以递归调用

B.不允许在函数中再定义函数

C.递归程序不可能用非递归算法实现

D.对于continue语句,可以通过改变程序的结构而不使用它

15.设int a[2][3]={{1},{2,3}};,则元素a[1][0]的值是(   )

A.0                                                                          B.1

C.2                                                                          D.3

16.若main()带参数,正确的是(   )

A.main(int argc,char*argv)                                        B.main(int argc,char*argv[])

C.main(int argc,char argv[][])                                    D.main(int argc,char argv[])

17.设

struct student

{ char name[10];

int sex;

int num;

}s,*p=&s;

以下对结构型变量s中成员num的非法引用是(   )

A.p->num                                                                B.(*p).num

C.s.num                                                                   D.student.num

18.下列说法中正确的是(   )

A.C语言的预处理命令只有宏定义和文件包含

B.预处理命令只能出现在主函数之前

C.所有预处理命令都是以符号″#″开头

D.有些预处理命令不是在源程序编译之前处理

19.设enum week {mon,tue=2,wed,thu,sat=6}day;,则枚举常量mon和thu的值分别是(   )

A.0和4                                                                   B.1和4

C.0和3                                                                   D.1和5

20.下列属于文件包含的命令是(   )

A.#define N 25                                                         B.#endif

C.#include ″stdio.h″                                             D.#else

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

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

21.一个C语言程序的执行起点是__________。

22.设int x=3,y=5;,则执行printf(″%d\n″,x^y);后输出__________。

23.设int s[3][2]={1,2,3,4,5,6},(*p)[2]=s;,则*(*(p+1)+1)的值是__________。

24.C语言中,可以处理的两类文件分别是文本文件和__________。

25.设int a=2;,则执行a+=a*=15;后,变量a的值是__________。

26.设double y[4][5];,则数组y中元素的个数是__________。

27.设int x=7,y=3,则表达式x%y+x/y的值是__________。

28.设char s[]={″apple″};,则执行printf(″%d\n″,strlen(s));后输出的值是__________。

29.设

union

{

int i;

char j[10];

float k;

}u;

则sizeof(u)的值是__________。

30.设

#define MOD(a,b)a%b

main()

{ int x=4,y=16,z;

z=MOD(y,x);

printf(″%d\n″,z++);

}

则程序执行的结果是__________。

三、程序分析题(本大题共5小题,每小题5分,共25分)

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

31.main()

{int x=15;

while(x<20)

{x++

if(x/3!=0){x++;break;}

else continue;

}

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

}

32.fun(int a[],int i,int j)

{int t;

if(i<j)

{t=a[i];a[i]=a[j];a[j]=t;

i++;j--;

fun(a,i,j);

}

}

main()

{int x[]={2,4,6},i;

fun(x,0,2);

for(i=0;i<3;i++) printf(″%2d″,x[i]);

printf(″\n″);

}

33./*程序运行时,输入一个整数5*/

main()

{int a,b[10],c,i=0;

printf(″输入一个整数\n″);

scanf(″%d″,&a);

while(a!=0)

{c=a%2;

a=a/2;

b[i]=c;

i++;

}

for(;i>0;i--)printf(″%d″,b[i-1]);

}

34.# include <stdio.h>

main()

{int a,b,i;

a=b=0;

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

{a+=i;

b+=i+1;

}

printf(″a=%d\n″,a);

printf(″b=%d\n″,b-11);

}

35.int a=100;

s()

{static int a=20;

a++

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

}

main()

{int i;

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

{a++;

printf(″%d,″,a);

s();

}

}

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

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

36.对含有10个元素的数组a先按元素的存储次序倒序输入,再按其正序输出。

#define_______/*第一空*/

main()

{int i,a[N];

for(i=N-1; _______;i--)/*第二空*/

scanf(″%d″, _______);/*第三空*/

for(i=0;i<N;i++)printf(″%d\t″,a[i]);

printf(″\n″);

}

37.学生成绩的字母等级和分数范围如下:

字母等级                                                    分数范围

 A                                                              90~100

 B                                                              80~89

 C                                                              70~79

 D                                                              60~69

 E                                                              0~59

其它字母                                                    输入错误

输入字母等级之后,输出相应的分数范围。

main()

{

_______;/*第一空*/

scanf(″%c″,&score);

switch(score)

{

case′A′:printf(″A:90~100\n″);_________;/*第二空*/

case′B′:printf (″B:80~89\n″);break;

case′C′:printf (″C:70~79\n″);break;

case′D′:printf (″D:60~69\n″);break;

case′E′:printf (″E: 0~59\n″);break;

_______:printf(″输入错误\n″);/*第三空*/

}

}

38.文本文件num.dat中含有若干个整数,将这些数据读出后求出它们的和,再将这些数据与它们的和分别显示到屏幕上。

#include<stdio.h>

main()

{int num;long int sum=0L;

FILE*fp;

fp=fopen(″num.dat″, ″r″);

do

{

fscanf(________,&num);/*第一空*/

sum+=_________;/*第二空*/

printf(″%5d″,num);

}while(_______);/*第三空*/

printf(″\nsum=%ld\n″,sum);

fclose(fp);

}

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

39.输入两个实型数x和y,计算并输出它们的和、差、积和商。

40.输入自变量x的值后,计算并输出y的值。

计算公式:y=

41.用循环结构输出下列数字金字塔(共9行)。

1

121

12321

1234321

……………

12345678987654321


关注新疆自考网微信公众号

《新疆自考网》免责声明:

1、由于各方面情况的调整与变化,本网提供的考试信息仅供参考,考试信息以省考试院及院校官方发布的信息为准。

2、本网信息来源为其他媒体的稿件转载,免费转载出于非商业性学习目的,版权归原作者所有,如有内容与版权问题等请与本站联系。联系邮箱:812379481@qq.com。