报名
坐标您当前所在位置: 湖北自考网> 考试科目 > 高级语言程序设计(一) > 模拟试题> 2011年4月自学考试00342《高级语言程序设计(一)》试题

2011年4月自学考试00342《高级语言程序设计(一)》试题

  来源 : 386802031    湖北自考教育网 : http://www.hbzkjy.com   

2011年全国高级语言程序设计模拟试卷(十)

一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。

1. 以下能正确定义且赋初值的语句是()

A. int n1=n2=10;

B. char c=32;

C. float f=f+1.1;

D. double x=12.3E2.5;

答案:B

2. 若给定条件表达式:“(a)?(b++):(b--),”则与表达式 a 等价的表达式是()

A. a==0

B. a==1

C. a!=0

D. a!=1

答案:C

3. 函数调用语句“f(1,2+3,(4,5));”的实参数目是()

A. 1

B. 2

C. 3

D. 4

答案:C

4. 运行下列程序后,输出结果是()

int f(int a,int *b)

{ return(a+*b);}

main()

{ int x=1,y=2,z=3;

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

}

A. 3

B. 5

C. 6

D. 7

答案:C

5. 设有下列数据定义语句,则表达式“sizeof(abc)”的值是()

struct { char a; short b; float c[2]; }abc;

A. 4

B. 7

C. 8

D. 11

答案:D

6. 设x和y均为int型变量,则执行下面的循环后,y的值为()

for(y=1;x=1;y<=50;y++)

if(x>=10) break;

A. 10

B. 9

C. 11

D. 8

答案:A

7. 函数调用“strcmp(″333″,″300″)”的返回值是 ()

A. 0

B. 1

C. 任意负整数

D. 任意正整数

答案:D

8. 下列程序的输出结果是()

struct abc

{int a,b,c;};

main()

{struct abc s[2]={{1,2,3},{4,5,6}};int t;

t=s[0].a+s[1].b;

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

}

A. 5

B. 6

C. 7

D. 8

答案:B

9. 如果打开文件时,选用的文件操作方式为″wb+″,则下列说法中错误的是()

A. 要打开的文件必须存在

B. 要打开的文件可以不存在

C. 打开文件后可以读取数据

D. 要打开的文件是二进制文件

答案:A

10. 若已定义:int a[9],*p=a,并在以后的语句中未改变 p 的值,不能表示 a[1]地址的表达式是()

A. p+1

B. a+1

C. a++

D. ++p

答案:C

11. 以下程序的输出结果是()

main()

{int x=10,y=10,i;

for(i=0;x>8;y=++i)

printf(″%d %d″,x--,y);

}

A. 10192

B. 9876

C. 10990

D. 101091

答案:D

12. 能正确定义一个用来向打开文件的文件型指针变量 fp 的语句是()

A. file fp

B. file *fp

C. FILE fp

D. FILE *fp

答案:D

13. 下列程序段的输出结果是 ()

char s[10];s=″abcd″;printf(″%s\n″,s);

A. abcd

B. a

C. abcd\0

D. 语法有错误

答案:D

解析:语法有错误

14. 存储整数-12345时,在二进制文件和文本文件中占用的字节数分别是 ()

A. 2和2

B. 2和6

C. 6和6

D. 6和2

答案:B

解析:2和6

15. 设有定义“ int x=8;”, 则表达式 “x+++1/3”的值是()

A. 0

B. 2

C. 3

D. 8

答案:D

解析:8

16. 设有条件表达式“(x)?1∶2”,则和表达式“(x)”作用相同的表达式是 ()

A. (x==0)

B. (x!=0)

C. (x==1)

D. (x!=1)

答案:B

解析:(x!=0)

17. 设有定义“short x[5]={1,2,3};”,则数组x占用的内存字节数是()

A. 10

B. 6

C. 5

D. 3

答案:

解析:10

18. 设有整型变量x值为1,表达式x+++x+(++x)的值是 ()

A. 3

B. 4

C. 5

D. 6

答案:B

解析:6

19. 设整型变量m的值为0,表达式!!!++m的值是()

A. -1

B. 0

C. 1

D. 2

答案:

解析:0

20. 若有以下定义,则数值为4的表达式是()

int w[3][4]={{0,1},{2,4}{5,8}},(*p)[4]=w;

A. *w[1]+1

B. p++,*(p+1)

C. w[2][2]

D. p[1][1]

答案:D

解析:p[1][1]

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

1. 若使用fopen函数打开一个新的二进制文件,对该文件进行读写操作,则文件使用方式字符 串应该是___。答案:″wb+″

2. 设m是整型变量,能表示“m是奇数”的C语言表达式是___。

答案:if (m%2==1)

printf("m是奇数")

else printf("m是偶数")

3. 若有定义:char c=′\010′;则变量 c 中包含的字符个数为___。

答案:1个

4. 设 int a[2][3]={{2},{3}};则数组元素___的值为3。

答案:a[1][0]

5. 若 a 是 int 型变量,则执行a=25/3%3后 a 的值为___。

答案:2

6. 在C语言中,如果某个逻辑表达式为假,则该逻辑表达式的值是___。

答案:0

7. C语言中的标识符只能由三种字符组成,它们是字母、数字和。_________

答案:下划线

8. 设有下列数据定义语句,则表达式“++p->b”的值是_________。

struct AB { int a; float b; } ab[2]={{4,3},{2,1}},*p=ab;答案:40

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

答案:0

10. 执行语句“if (x=0) x=1;”后,变量x的值是______

答案:0

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

1. # include

main()

{int s=0,k;

for(k=7;k>=0;k--)

{ switch(k)

{case1:

case 4:

case 7:s++;break;

case 2:

case 3:

case 6:break;

case 0:

case 5:s+=2;break;

}

}

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

}

输出结果为?

答案:s=7

2. #include ″string.h″

main()

{ int n,i,j;

char s[]={″1,2,3,4,5,6,7″},temp;

n=strlen(s);

for (i=0;i

{ j=n-1-i;

temp=s[i];s[i]=s[j];s[j]=temp;

}

printf(″%s″,s);

}

输出结果为?

答案:7,6,5,4,3,2,1

3. main()

{char *a[6]={″AB″,″CD″,″EF″,″GH″,″IJ″,″KL″};

int i;

for (i=0;i<4;i++) printf(″%s″,a[i]);

printf(″\n″);

}

答案:ABCDEFGH

4. # include

main( )

{ int s,i,sum;

for(i=1,i<=10;i++)s=sum(i);

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

}

sum(int k){static int x=0;return(x+=k);}

答案:s=55

5. main()

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

int *p;

int i;

p=a;

*(p+3)+=2;

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

}

答案:1,6

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

1. 图中空白处答案应为:___,___,___。

答案:j=i+1

2. 下面程序的功能是根据以下公式求π的近似值(精度为10-6)。

π2=1+13+13×25+13×25×37+13×25×37×49+…

main()

{ double s=0.0,t=______;

int n;

for (n=2;t>=1E-6;n++)

{ s+=t;

;

}

printf(″%f\n″,);

}

答案:10

t=t*(n-1)/(2*(n-1)+1)

2*s

3. 下面程序输出两个字符串对应位置相等的字符。

# include ″stdio.h″

main( )

{ char a[___]=″programming″,b[___]=″fortran″;

int i=0;

while(a[i]!=′\0′&&)

if(a[i]==b[i])printf(″%c″,);

else;

}

答案:

五、程序设计题(第1小题5分,第2、3小题各6分,共17分)

1.

答案:# include

# define N 50

main()

{ int i,s[N][3];

float s0=0,s1=0,s2=0;

for(i=0;i

{ scanf(″%d,%d,%d″,&s[i][0],&s[i][1],&s[i][2]);

s0=s0+s[i][0];s1=s1+s[i][1];s2=s2+s[i][2];

}

s0=s0/N;s1=s1/N;s2=s2/N;

printf(″%f,%f,%f″,s0,s1,s2);

}

2. 编一个程序,将两个字符串连接起来,不要用 strcat 函数。

答案:# include

main()

{

char s1[80],s2[40];

int i=0,j=0;

printf(″\n input string1:″);

scanf(″%s″,s1);

printf(″\n input string2:″);

scanf(″%s″,s2);

while(s1[i]!=′\0′)

i++;

while(s2[j]!=′\0′)

s1[i++]=s2[j++];

s1[i]=′\0′;

printf(″\n new string:%s″,s1);

}

3. 从文件r.exe中读10个浮点数并存入数组b中。

答案:# include ″stdio.h″

FILE *fp;/*定义文件型指针变量*/

main()

{ float b[10];

clrscr();/*清屏*/

if(! (fp=fopen(″r.exe″,″rb″)))/*文件打开失败*/

{ printf(″cannot open file\n″);

exit(1);/*退出*/

}

if((fread(b,sizeof(float),10,fp))==10)/*从 fp 指向的文件读10个数据成功*/if(! feof(fp))printf(″premature end of file″);/*文件没读完*/else printf(″file read end″);

getch();

fclose(fp);/*关闭文件*/

}

热门专业推荐

  • 联系方式
  • 投诉与建议电子邮箱:272223086@qq.com
  • 联系方式:13117063983
微信
微信