首页 > 课程 > 高级语言程序设计(一) > 模拟试题 > 2011年07月自学考试00342《高级语言程序设计(一)》试题

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

发布时间:2019-08-12

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

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

1. 设有下列数据定义语句,则表达式值是字母M的是()

struct P {char name[10]; int age;};

struct P c[3]={ {″John″ ,17},{″Paul″,19},{″Mary″,18}};

A. *c[3].name

B. c[3].*name

C. c[2].name[0]

D. c+2->name[0]

答案:C

2. 设 char c[5]{′a′,′b′,′c′,′0′}则 printf(″%s″,c);的输出是()

A. ′a′ ′b′

B. ab

C. abc

D. ″ab\0c″

答案:C

3. 下面程序段的运行结果是()

char a[]=″language″,*p;

p=a;

while(*p!=′u′){printf(″%c″,*p-32);p++;}

A. LANGUAGE

B. language

C. LANG

D. langUAGE

答案:C

4. .执行下面的程序段后,变量 k 中的值为()

int k=3,s[2];

s[0]=k;k=s[1]*10;

A. 不定值

B. 33

C. 30

D. 10

答案:A

5. 以下给出的各个函数的函数头中,正确的是 ()

A. void f(int a,b)

B. int *f(int a,int b)

C. int f(int a;int b)

D. int f(int a,int b;)

答案:B

6. 设有下列数据定义语句,则能正确使用变量xyz1引用成员a的表达式是 ()

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

struct xyz { int x;struct abc abc2; } xyz1;

A. xyz1.a

B. xyz1.abc1.a

C. xyz1.abc2.a

D. xyz1->abc2->a

答案:C

7. 设变量x为实型,不能正确表达数学公式xyz的表达式是 ()

A. x/y*z

B. x*(1/(y*z))

C. x/y*1/z

D. x/y/z

答案:A

8. 以下循环体的执行次数是()

main()

{int i,j;

for(i=0,j=1;i<=j+1;i+=2,j--)printf(″%d\n″,i);

}

A. 3

B. 2

C. 1

D. 0

答案:C

9. 下列程序的运行结果是()

# include

main()

{int a=2,c=5;

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

A. a=%2,b=%5

B. a=2,b=5

C. a=d,b=d

D. a=%d,b=%d

答案:B

10. 下列程序执行后的输出结果是()

void func(int *a,int b[])

{b[0]=*a+6; }

main()

{int a,b[5];

a=0;b[0]=3;

func(&a,b);

printf(″%d\n″,b[0]);

}

A. 6

B. 7

C. 8

D. 9

答案:A

11. 字符串“chen jing”在存储单元中占几个字节()

A. 8

B. 9

C. 10

D. 11

答案:C

12. 设有定义:char s[12]={″string″};,则printf(″%d\n″,strlen(s));的输出是()

A. 6

B. 7

C. 11

D. 12

答案:A

13. 下列程序执行后的输出结果是()main( )

{ int x=′f′;printf(″% c\n″,′A′+(x-′a′+1));}

A. G

B. H

C. I

D. J

答案:A

解析:G

14. 设有定义语句“char s[3][20],(*p)[20]=s;”则下列语句中错误的是()

A. scanf(″%s″,s[2]);

B. gets(*(p+2));

C. scanf(″%s″,*(p+2+0));

D. gets(s[2][0]);

答案:D解析:gets(s[2][0]);

15. 已知:float x=1,y;则y=++x*++x的结果为()

A. y=9

B. y=6

C. y=1

D. 表达式是错误的

答案:B解析:y=6

16. 一个C语言程序是由()组成的。

A. 主程序

B. 子程序

C. 函数

D. 过程

答案:C解析:函数

17. 下列选项中,合法的用户标识符是()

A. long

B. 45

C. ab

D. -sub

答案:C

18. 设有定义语句″int x[]={1,3,5,7,9,11,13},p=x;″,则不能正确引用数组x的合法元素的表达式是()

A. (p--)

B. (-- p)

C. p(++)

D. (++ p)

答案:B

解析:(-- p)

19. 不属于C语言保留字的是()

A. break

B. else

C. If

D. while

答案:C解析:If

20. 设有定义语句()

struct

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

则 printf(″%3.1f\n″,d[2].a);的输出是

A. 2.5

B. 2.0

C. 8.0

D. 6.0

答案:D

解析:6.0

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

1. C语言的执行总是由___函数开始,并且在此函数中结束。

答案:主(或main)22.m%2

2. 使用 fopen(″abc″,″a+″)打开文件时,若 abc 文件不存在,则___。

答案:建立新文件

3. 设 int a=1,b=2,c=3,d;执行d=!(a+b+c)后,d 的结果是___。

答案:0

4. 设有“char s[10]=″ABCDEF″,*p=s; p=″123″;”,则“s[3]”的值是字符___。 答案:D

5. 如果要将表达式(2*5.3)强制转换成长整型,应该写成____________

答案:long(2*53)

6. 对于变量x,其地址可以写成;对于数组y[10],其首地址可以写成或_________

答案:&xy&y[0]

7. 在C语言中的实型变量分为两种类型,它们是_________和_________

答案:float型double型

8. 设有数据定义语句“char s1[10]=″123″,s2[]={″45678″};”,则表达式“strlen (strcpy(s1,s2))+strcmp(s1,s2)”的值是______答案:5

9. 已知字母a的ASCⅡ码为十进制数97,且设ch为字符型变量,则表达式ch=′a′+′8′-′3′的值为______

10. 设有语句串“int x[4]={1,2,3},*p[2]; p[1]=x+1;”,则*p[1]的值是______答案:2

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

1. main()

{ struct

{ char *name; int age;

} p[]={″ZHAO″,19,″QIAN″,21,″SUN″,20};

int i,k=0;

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

if ((*(p+k)).age<(p+i)->age) k=i;

printf(″%s\n″,(p+k)->name);

}

输出结果为?

答案:QIAN

2. main()

{static int a[][3]={9,7,5,3,1,2,4,6,8};

int i,j,s1=0,s2=0;

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

{if(i==j)s1=s1+a[i][j];

if(i+j==2)s2=s2+a[i][j];

}

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

}

输出结果为?

答案:18

10

3. # include

main()

{int i,j;

for(i=4;i>1;i--)

{ printf(″*″);

for(j=1;j<4-i;j++)printf(″*″);

printf(″\n″);}

}

输出结果为?

* *

* * *

* * * *

4. f(int a)

{ int b=0;

static int c=3;

a=c++,b++;

return(a);

}

main()

{ int a=2,i;

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

printf(″%d,″,f(a++));}

答案:3,4

5. main()

{

char ss[10]=″a program″;

int num=4;

sub(ss,0,num-1);sub(ss,num,6);sub(ss,0,6);

printf(″%s\n″,ss);

}

sub(ss,num1,num2)

char *ss;int num1,num2;

{

char t, * p;

p=ss+num2;ss=ss+num1;

while(ss

答案:ogra pram

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

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

答案:float *max, float *min

*p

*max=*(p+i*6+j)

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

答案:′\0′ ++ num

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;

}

答案:b[i]!=′\0′a[i++]i++

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

1. 用三种循环语句分别编写程序显示 1~100的平方值。

答案:# include

main()

{ int i;

for(i=1;i<=100;i++)printf(″%d″,i*i);printf(″\n″);i=1;while(i<=100){printf(″%d″,i*i);i++;}printf(″\n″);i=1;do{printf(″%d″,i*i);i++;}while(i<=100);

}

更多试卷请登陆九州考苑(http://www.wenkuxiazai.com)

2. 编一个程序,输入15个整数存入一维数组,按逆序重新存放后再输出。答案:# include

main()

{ int a[15],*p=a,i,j;

for(i=0;i<15;i++,p++)

scanf(″%d″,p);

p--;

for(i=0;i<7;i++,p--){j=*p;*p=*(p-14+2*i);*(p-14+2*i)=j;}for(i=0;i<15;i++)

printf(″%d\n″,a[i]);

}

3. 编函数,将短整数m转换成字符串存入指针变量p指向的字符型数组。答案:void f(short m,char *p)

{ char s[5];

int k=4;

if (m<0) { *p=′-′; p++; m=-m; }

while (m!=0)

{ s[k]=′0′+m%10; k--; m=m/10; }

for (k++,k<5;k++,p++)*p=s[k];

*p=′\0′;

return;

}

联系方式

  • 投诉与建议电子邮箱:272223086@qq.com
  • 联系方式: 13117063983    http://www.hbzkjy.com