设为首页收藏本站

湖北自考网论坛-湖北自考论坛|湖北自考网|湖北最大自学考试社区论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

查看: 3394|回复: 12
打印 上一主题 下一主题

高级语言程序设计(一) 00342 全国高等教育自学考试 概述 [复制链接]

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2005-12-31 09:36:23 |只看该作者 |倒序浏览

高级语言程序设计(一) 00342 全国高等教育自学考试 第1章 概述

一、选择题

1、正确的C语言用户自定义标识符是 【A】 P5

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

2、C语言程序编译时,程序中的注释部分 【 D】 P8

A. 参加编译,并会出现在目标程序中

B. 参加编译,但不会出现在目标程序中

C. 不参加编译,但会出现在目标程序中

D. 不参加编译,也不会出现在目标程序中

3、C语言中,″\x3d″在内存中占用的字节数是( B )

A.1 B.2 C.4 D.5

第2章 基本数据类型和运算

一、选择题

1、下列表达式的值为0的是 【 C 】

A. 3﹪5 B. 3/5.0 C. 3/5 D. 3<5

2、4. 设int a = 3;则表达式a<1&& - - a>1的运算结果和a的值分别是【B 】 A. 0和2 B. 0和3 C. 1和2 D. 1和3

3、属于C语言基本数据类型的是(B ) P10

A.指针型 B.无符号整型 C.数组型 D.结构型

4、C语言的长整型数值在计算机中占用的字节个数是(D)

A.1 B.2 C.3 D.4

5、设int x;则执行printf(″%x\n″,~x^x);的结果是( D )

A.0 B.1 C.ff D.ffff

6、设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是( A)

A.9,19 B.9,20 C.10,19 D.10,20

二、填空题

1、初始化值是0.618的双精度变量a的定义形式为 double a=0.618

2、表达式 !10! = 1的值是 1

3、“20<x≤30”的C语言表达式是.x>20&&x<30或者(x>20)&&(x<30)

4、表达式a = 1,a + 1,a + + 的值是 2

5、设int y;执行表达式(y=4)||(y=5)||(y=6)后,y的值是 4

6、设char ch=′A′;则printf(″%c″,(ch>=′A′ &&

ch<=′Z′)?ch+32:ch);的值是 a

第3章 顺序结构和循环结构

一、选择题

1、下列保留字中用于构成循环结构的是 【B】

A. if B. while C. switch D. default

2、 与语句if(a>b)if(c>d)x = 1;else x = 2;等价的是【A 】

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;

3、设 char x =′a′;则printf(″x = ﹪c, y = ﹪c \ n″,x,97);的输出是【 D】

A. x = a,y = 97 B. x = 97,y = a C. x = 97,y = 97 D. x = a,y = a

4、对于while语句,错误的说法是( B)

A.用条件控制循环体的执行次数 B.循环体至少要执行一次

C.循环体有可能一次也不执行 D.循环体中可以包含若干条语句

5、执行下列语句

int a=8,b=7,c=6;

if(a<b)if(b>c){a=c;c=b;}

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

后输出的结果是( C)A.6,7,7 B.6,7,8 C.8,7,6 D.8,7,8

5、设int b[ ]={1,2,3,4},y,*p=b; 则执行语句y=*p++;之后,变量y的值为( A ) A.1 B.2 C.3 D.4

二、填空题

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

2、结构化程序设计的三种基本结构是:选择结构、循环结构和顺序结构

3、下列程序

int x=3;

do{printf(″%d″,--x);}while(!x);

循环执行的次数是 1

三、程序分析题

1、 # include ″stdio.h″

main()

{char c;

c = getchar();

if(c> =′a′&&c< =′z′) ‖c> =′X′&&c< =′Z′)c = c - 23;

printf(″﹪c \ n″,c);

}

设从键盘上输入Next ↙

答:Q

2、.main( )

{

int s=0,i;

for(i=1;;i++)

{

if(s>50)break;

if(i%2==0) s+=i;

}

printf(″i=%d,s=%d\n″,i,s);

}

答: i=15,s=56

四、程序填充题

1、输入一字符串(换行为结束标志)统计其中数字(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 =﹪d \ n″,digit,blank,other);

}

答:.(1)digit=0,blank=0,other=d (2)c>=’0’&&c>=’9’

(3)++other或者 othe++

五、程序设计题

1、 求出10至1000之内能同时被2、3、7整除的数,并输出。

答:main()

{int i;

for(I=10;I<=1000;I+++)

if(I%2= =0)&&(I%3= =0)&&(I%7= =0)

print(“I=%d/n”,i);

}

2、 求1到100之间的奇数之和及偶数之和,并将二者输出。

答:main()

{int a=0,b=0,I;

for(I=2;I<=100;I+=2

{a+=I;b+=i-1}

printf(“Sum of even umberz%d/n”,a);

printf(“Sum of odd umberz%d/n”,b),

}

3、计算e=1+的值并输出(设n=20)。

答:40、main()

{double e,f ; int i;

e=f=1;

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

{f*=i;e+=1/f ;}

printf(“\ne=%f”,e)}

分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏0

Rank: 9Rank: 9Rank: 9

沙发
发表于 2005-12-31 09:36:50 |只看该作者

第4章 数组

一、选择题

1、设int a[][4]={1,2,3,4,5,6,7,8,9};则数组a的第一维的大小是【 B】 A. 2 B. 3 C. 4 D. 无确定值

2、执行下列程序

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

int b[3][3]={1,2,3};

main()

{printf(″﹪d \ n″,a[1][0] + b[0][0]);}

后输出的结果是 【 D】

A. 0 B. 1 C. 2 D. 3

3、设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么( A )

A.x数组的长度等于y数组的长度B.x数组的长度大于y数组的长度

C.x数组的长度少于y数组的长度D.x数组与y数组的存储区域相同

4、设int i,x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句

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

printf(″%d″,x[2-i]);

的输出结果是( C ) A.147 B.159 C.357 D.369

二、填空题

1、 设char string[] =″This_is_a_book!″;则数组的长度应是16

2、设int a[2][3] = {{2},{3}};则数组元素 a[1][0] 的值为3。

3、在C语言中,一个二维数组可以看成若干个 一维 数组。

三、程序分析题

1、 # define N 7

main()

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

for(i = 0;i<N/2;i + + )

{j = N - 1 - i;

temp = a;a=a[j];a[j]=temp;

}

for(i = 0;i<N;i + + ) printf(″﹪5d″,a);

}

答:7 6 5 3 3 2 1

2、# include<stdio.h>

main( )

{ int i=0;

char c,s[]=″SABC″;

while(c=s)

{

switch(c)

{

case ′A′:i++;break;

case ′B′:++i;

default:putchar(c);i++;

}

putchar(′*′);

}

}

答:S**B*

四、程序填充题

1、 以下程序的功能是用选择法对数组a中的整数由小到大进行排序。

void sort(int b[],int n)

{ int i,j,t;

for(i = 0;i<n - 1;i ++ )

for(______;j<n;j ++ )

if(b_____b[j])

{t = b;_____________;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(″﹪5d″,a);

printf(″\ n″);

}

答:(1)j=I+1 (2)> (3)b[I]=b[j]

2、 先为数组a输满数据,再为x输入一个数据,在数组a中找出第一个与x相等的元素并将其下标输出,若不存在这样的元素,则输出“Not

found!”标志。

main()

{int i,x,a[10];

for(i = 0;i<10;i ++ )scanf(″﹪d″,___________);

scanf(″﹪d″,&x);printf(″﹪d″,x);

for(i = 0;i<10;i ++) if(_________________)break;

if (i _________10)printf(″ position:﹪d \ n″,i);

else printf(″ Not found! \ n″,x);

}

答: (1)&&或者a+I (2)x= =a (3)<

五、程序设计题

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

答:Hinclude “stringh”

main({int I,n;static char str[80];

gets(str);n=strlen(str);

for(I=0;I<n12;i++)

if (str!=str[n-1-i]

{printf(“No!/n”);break;}

if(I= =n/2) printf (“Yes!/n”);

}

2、将100个整数输入数组后按每行10个数输出。

答:main( )

{int a[100],I;

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

scanf(“% d”,&a);

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

{if (i%10= =0)printf(“\n”);

print(“%&d”,a;)

}

3、生成Fibonacci数列的前20项并输出,其中

fi=

答: main ( )

{int f[20],i;

f[0]=1;f[1]=1;

for (I=2;i<=19;i++)

f=f[i-1]+ f[i-2];

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

{if(i%4= =0)printf(“\n”);

print(“%&d”,f);

}

使用道具 举报

Rank: 9Rank: 9Rank: 9

板凳
发表于 2005-12-31 09:37:16 |只看该作者

第5章 指针

一、选择题

1、设char str[100];int i = 5;则引用数组元素的错误形式是 【D 】

A.str[i + 10] B.(str + i) C.(str + i - 1) D.((str + + ) + i)

2、设int x[] = {1,2,3,4,5,6},* p = x;则值为3的表达式是【 B】

A.p + = 2, * + + p B.p + = 2, * p + + C.p + = 3, * p D.p + = 2, + + * p

3、设int a,*p;则语句p=&a;中的运算符“&”的含义是(D)

A.位与运算 B.逻辑与运算 C.取指针内容 D.取变量地址

二、填空题

1、设int a[3][4]={{1,3,5,7},{2,4,6,8}};则*(*a+1)的值为___。

三、程序分析题

四、程序填充题

1、将十个整数输入数组,求出其平均值并输出。

main( )

{int i,a[10],sum=0,*p=______; /*第一空*/

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

{ scanf(″%d″,p);sum+=______; /*第二空*/

printf(″%8.2f\n″,______); /*第三空*/

}

答: (1)a (2) *p++ (3) 1.0*sum/10

2、为数组输入数据,逆序置换后输出。(逆序置换是指:数组的首元素和末元素置换,第二个元素和倒数第二个元素置换,………)

# define N 8

main( )

{ int i,j,t,a[N];

for(i=0;i<N,i++)scanf(″%d″,a+i);

i=0;j=N-1;

while(i<j)

{ t=*(a+i);________; /*第一空*/

______=t; /*第二空*/

i++;______; /*第三空*/

}

for(i=0;i<N;i++)printf(″%5d″,*(a+i));

}

答: (1)*(a+i)=*(a+j) (2)*(a+j) (3)J——

使用道具 举报

Rank: 9Rank: 9Rank: 9

地板
发表于 2005-12-31 09:37:36 |只看该作者

第6章 函数

一、选择题

1、执行下列程序

int a = 3, b = 4;

void fun(int x1, int x2)

{printf(″﹪d, ﹪d \ n″, x1 + x2, b);}

main()

{int a = 5, b = 6;fun(a, b);}

后输出的结果是 【 C】

A. 3,4 B. 11,1 C. 11,4 D. 11,6

2、下面函数定义有错误的是( C )

A.f1(x1,x2) B.f1(x1,x2)

int x1,x2; int x1;int x2;

{函数体} {函数体}

C.f1(int x1,x2) D.f1(int x1,int x2)

{函数体} {函数体}

3、C语言中计算a3正确的表达是( B)

A.a^3 B.pow(a,3) C.a**3 D.power(a,3)

二、填空题

1、被调函数在执行结束时,这个函数中定义的 静态存储,或者static 类型的变量不被释放。

2、若函数定义为

int data( )

{ float x=9.9;

return(x);

}

则函数返回的值是 3

三、程序分析题 列程序,将输出结果写到各题右侧的空白处

1、 int a = 200;

main()

{int i;

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

{a + + ;

printf(″﹪d,″,a);

s()

}

{

s()

{static int a = 20;

a + + ;

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

a + + ;

}

答:201,21

202,22

203,23

204,24

2、fun(int x)

{

int y=0;

static int z=3;

z++;++y;

return(x+y+z);

}

main( )

{

int I,x=2;

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

printf(″%5d″,fun(x++));

}

答: 7 9

3、gcd(int m,int n)

{ if(m==n)return m;

else if(m>n) return gcd(m-n,n);

else return gcd(m,n-m);

}

main( )

{

printf(″Gcd=%d\n″,gcd(24,36));

}

答:Gcd=12

4、int a1=300,a2=400;

main( )

{int a3=100,a4=200;

sub1(a3,a4);

sub1(a1,a2);

printf(″%d,%d,%d,%d\n″,a1,a2,a3,a4);

}

sub1(int x,int y)

{ a1=x;

x=y;

y=a1;

}

答:100,400,100,200

四、程序填充题

1、输入一个无符号整数后求出它的各位数之和并输出。

例如若输入123,则将各位之和6(即1+2+3)输出。

______f(num) /*第一空*/

unsigned int num;

{ unsigned int k=0;

do

{ k+=______; /*第二空*/

num/=10;

} while(num);

______; /*第三空*/

}

main( )

{unsigned int n;

scanf(″%d″,&n);

printf(″%u\n″,f(n));

}

答: (1)unsigned (2)num%10 (3)return(k)

使用道具 举报

Rank: 9Rank: 9Rank: 9

5#
发表于 2005-12-31 09:37:49 |只看该作者

第7章 结构型共用型和枚举型

一、选择题

1、设有定义语句

struct

{int a;float b;} d[3]={{1,4},{2,5},{6,7}};

则printf(″﹪3.1f \ n″,d[2]. a * d[2]. b/d[1]. b);的输出是 【 D 】

A. 2.5 B. 2.0 C. 8.0 D. 8.4

2、设有定义语句:enum t1 {a1, a2 = 7, a3, a4 = 15}time;

则枚举常量a2和a3的值分别为 【 D】

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

3、下列定义正确的是( D )

A.anum t={a,b}x; B.enum t{1,2}x; C.anum {′+′,′-′}x; D.enum t{a,b}x;

4、设有定义:union u{int a[4];float b[3]}; char c[16];}aa;

则printf(″%d\n″,sizeof(aa));的输出是( B)

A.32 B.16 C.12 D.8

二、填空题

1、设struct student

{int no;char name[12];

float score[3];

{s1,*p=&s1;.

用指针变量p给s1的成员no赋值1234的方法是 p—>no=1234;或(*p).no=1234。

三、程序分析题

1、 struct porb

{char * name;

int count;

}x[]={″Li ning″,19,″Lang ping″,21,″Zhu jian hua″,20};

main()

{int i;

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

printf(″﹪s: ﹪d \ n″,x.name,x.count);

}

答:li ming:19

Lang ping:21

Zhu jian hua:20

2、main()

{union

{short a;char ch;

}M;

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

printf(″﹪d,﹪d,﹪c \n″,sizeof(M),M.a,M.ch);

}

答:2,6 5,a

使用道具 举报

Rank: 9Rank: 9Rank: 9

6#
发表于 2005-12-31 09:38:04 |只看该作者

第8章 文件

一、选择题

1、17. 将一个整数10002存到磁盘上,以ASCII码形式存储和以二进制形式存储,占用的字节数分别是 【 C】

A. 2和2 B. 2和5 C. 5和2 D. 5和5

2、在文件使用方式中,字符串″rb″表示 【 A 】

A. 打开一个已存在的二进制文件,只能读取数据

B. 打开一个文本文件,只能写入数据

C. 打开一个已存在的文本文件,只能读取数据

D. 打开一个二进制文件,只能写入数据

3、数据-35.78在文本文件中占用的字节个数是(C )

A.4 B.5 C.6 D.8

4、为了向二进制文件尾部增加数据,打开文件的方式应采用(A )

A.″ab″ B.″rb+″ C.″wb″ D.″wb+″

二、填空题

1、C语言程序中对文本文件的存取是以 字节 为单位进行的。

2、判断文本文件是否结束时使用的符号常量EOF的值是—1

第9章 编译预处理与带参数的主函数

一、选择题

1、下列叙述中,正确的是 【 C】

A. 引用带参的宏时,实际参数的类型应与宏定义时的形式参数类型相一致

B. 宏名必须用大写字母表示

C. 宏替换不占用运行时间,只占编译时间

D. 在程序的一行上可以出现多个有效的宏定义

2、在文件使用方式中,字符串″rb″表示 【 A 】

A. 打开一个已存在的二进制文件,只能读取数据

B. 打开一个文本文件,只能写入数据

C. 打开一个已存在的文本文件,只能读取数据

D. 打开一个二进制文件,只能写入数据

3、执行下列程序

# define F(y) 15>>y

# define PRINT(a) printf(″﹪d″,a)

main()

{

PRINT(F(2));

}

后输出的结果是 【 A】

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

4、 main()函数可以带两个形参,一般分为argc和argv,其中argv可以定义为【B 】

A. int argv; B. char * argv[];

C. char argv[]; D. char ** argv[];

5、若函数能被其它编译单位引用,那么函数定义时的存储类型应选用(C)

A.auto B.static C.extern D.register

6、在下列有关宏替换的叙述中,正确的说法是(D )

A.宏替换占用运行时间 B.宏名有类型

C.带参数的宏替换和函数等价 D.宏替换只是字符替换

7、下列程序的运行结果是(A )

# define A 5

# define B A+1

main( )

{int a;

a=B;

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

}

A.6 B.5 C.4 D.出错

二、填空题

1、设有一个名为″myfile.c″的C程序,其主函数为mian(int argc,char *argv[ ])。如果在执行时,输入的命令行为 myfile aa bb ↙则形式参数argc的值是 3

使用道具 举报

Rank: 9Rank: 9Rank: 9

7#
发表于 2005-12-31 09:38:18 |只看该作者

一、1.G 2.C 3.A 4.B 5.D 6.A 7.C 8.C 9.A 10.C

11.A 12.C 13.B 14.D 15.B 16.B 17.D 18.B 19.B 20.D

二、21.整型 22.65535 23.0 24.2,1 25.void 26.E 27.31

28.(n%/2==0)&&(n>m) 29.7 30.9

三、31.55 32.32 34.100 35.在显示器上输出:computer

33. 1234567

7654321

四、36.(1)&n (2)n%2 (3) n/2

37.(1)\[2][5] (2)%a[I] (3)b[j]

38.(1)p=a (2)*(*(p+i)+j) (3)pringf(“\n”)

39. main( )

{int i,a;

for(i=0;i>10;i++)

{a=I*10+6;

if(a%/3= =0)prinft(“%5d”,a);}

}

40.#include”ctype.h”

{char a[50];int i=0;

scanf(“%s”,a);

while(a!=’\0’)

{

if(islower(a))prinft(“%c”,toupper(a);

else printf(“c”,tolower(a));

I++;

}

}

41.main( )

{int a[3][4],i,j;

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

scanf(“%d”,&a[j]);

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

for(j=0;i<4;j++)

if(i!=1)printf(“%d\n”,a[j]);

else{if(j!=1)&&(j!=2)printf(“%d\n”,a[j]);}

}

使用道具 举报

Rank: 9Rank: 9Rank: 9

8#
发表于 2005-12-31 09:38:33 |只看该作者

第一部分 选择题(共20分)

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

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

1.组成C语言程序的是( )

A.过程 B.函数 C.子程序 D.主程序和子程序

2.编译程序的功能是( )

A.将汇编语言程序转换为目标程序 B.将汇编语言程序转换为高级语言程序

C.将高级语言程序转换为目标程序 D.将高级语言程序转换为汇编语言程序

3.C语言中定义某个内部变量时,如果省略了存储类型符,则系统将默认该变量是( )

A.自动型 B.寄存器型 C.静态型 D.外部参照型

4.不用第三个变量,将变量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.先执行后判断

8.设int x=1,a=9,b=6,c=7,d=8;则执行语句:

if(a>b) if(c>d)x=2;else x=3;

后,x的值是( )

A.1 B.2 C.3 D.不确定

9.设char str1[10]=″ABCDE″,str2[10]=″XYZ″;则执行语句:

printf(″%d″,strlen(strcpy(str1,str2)));

后的输出是(

A.3 B.5 C.8 D.9

10.初始化一维数组a正确的语句是( )

A.int a[10]=(0,0,0,0,0); B.int a[10]={ };

C.int a[ ]={10} ; D.int a[10]={[10*1]};

11.语句int (*p)( );的含义是( )

A.p是一个指向函数的指针变量,该函数的返回值是一个整型数据

B.p是指针变量,指向一个整型数据 C.p是一个指向一维数据的指针变量

D.p是指针函数

12.设int a[10],*p=a;

则对数组元素的正确引用是(

A.a[p] B.p[a] 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.若函数中局部变量的值经函数调用后仍保留,则该局部变量定义为( )

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 C.2,6 D.2,8

17.对于文件操作方式″rb+″,准确的说法是( )

A.可读写文本文件 B.只读二进制文件 C.只读文本文件D.可读写二进制文件

18.数据-324在二进制文件和文本文件中所占的字节数分别是( )

A.2,2 B.2,4 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

使用道具 举报

Rank: 9Rank: 9Rank: 9

9#
发表于 2005-12-31 09:38:57 |只看该作者

第二部分 非选择题(共80分)

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

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

21.设char a,b;则表达式a/b-′c′的值的类型为 。

22.设int k=-1;执行printf(″%u″,k);后输出的值是 。

23.设for(k=0;k<0;k++)++k;则该循环共执行 次。

24.设int a =1,b=2;经表达式a=a∧b,b=a∧b,a=a∧b运算后a,b的值分别是 。

25.表示空类型的保留字是 。

26.已知程序段:

char *p=″abcdefgh″;p+=4;

printf(″%c\n″,*p++);

运行结果为

27.设

struct student

{ int no;char name[12];

char ***;float score[4];

}stu1;

在程序执行时,系统为stu1分配 个字节的内存空间。

28.写出“n是小于整数m的偶数”的表达式 。

29.字符串″ABCD\t\\\123″的长度是 。

30.设union

{ int b;char a[9];float x;}un;

则变量un所占的字节数是 。

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

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

31.sum(int n)

{

if(n= =1) return(1);

else return n+sum(n-1);

}

main( )

{

printf(″%d\n″,sum(10));

}

32.设从键盘输入282

sub(int n)

{int s=1;

do

{ s*=n%10;n/=10;}

while(n);

return s;

}

main( )

{ int n;

scanf (″%d″,&n);

n=sub(n);

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

}

33.#define N 7

#define PRINT for(i=0;i<N;i++)printf(″%5d″,a);printf(″\n″);

main( )

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

PRINT

for(i=0,i<N/2,i++)

{j=N-1-i;temp=a;a=a[j];a[j]=temp;}

PRINT

}

34.int x=30;y=50;

sub(x,y)

{ y=x>y?x:y;

return y;

}

main( )

{

{int x=100;

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

}

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

}

35.设文件file1.c的内容为COMPUTER

#include ″stdio.h″

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);

}

使用道具 举报

Rank: 9Rank: 9Rank: 9

10#
发表于 2005-12-31 09:39:37 |只看该作者

四、程序填充题(本大题共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(″%5d″, );/*第三空*/

}

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

main( )

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

; /*第一空*/

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

{

for(j=0;j<3;j++) printf(″%5d″, ); /*第二空*/

;/*第三空*/

}

}

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

39.输出100之内所有个位数字为6且能被3整除的自然数。(如:36,66,96……)

40.键入一串字符(换行符结束),用循环语句将其中的大小写英文字母互换后输出。

41.设int a[3][4];先为数组输满数据,再将该数组周边的元素输出(元素输出次序不限)。

一、单项选择题(每小题1分,共15分)

1.B 2.C 3.C4.C5.C 6.A 7.B 8.A 9.B 10.B11.D 12.C13.D 14.D 15.C

二、填空题(每空1分,共15分) 15.a、b为同类型的结构体变量

1.4 2.a<b? a:b 3.pow(x+y,1.0/3) 4.a-b==b-c

5.a*b!=0 或a*b 6.11,6 7.27\n 8.6 9.10 10.49

11.windows 9x 12.9x 13.string.h 14.a[k].b或(a+k)->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(4)printf(″%d %d\n″,gbs,gys);

2.(1)int sum(int m) (2)i=2 (3)m%i==0 (4)return s

3.(1)return h(2)p1->next!=NULL(3)n==p1->num(4)p2->next=p1->next

五、编程题(第1小题6分,其他小题各8分,共22分)

1.#include <stdio.h>

void main()

{ int i,n;float x,s1=0;s2=0;

scanf(″%d″,&n);

for(i=1;i<=n;i++) {scanf(″%f″,&x);if(x>0) s1++;if(x<0) s2++;}

printf(″%f %f\n″,s1,s2,);

}

2.#include <stdio.h>

void main()

{ float a[15],y; int i;

for(i=0;i<15;i++) scanf(″%f″,a+i);

y=a[14];for(i=13;i>=0;i--) y=1+a[i]/(1+y);

printf(″%f\n″,y);

}

3.#include <stdio.h>

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);

}

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

自考论坛导航|湖北自考网论坛   

GMT+8, 2024-5-4 09:33 , Processed in 0.039380 second(s), 11 queries .

Powered by 湖北自考网论坛 X2

© 2001-2017 湖北自考论坛

回顶部