答案--全国2011年7月计算机基础与程序设计试题

更新时间:2023-10-26 05:25:01 阅读量: 综合文库 文档下载

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

全国2011年7月自学考试计算机基础与程序设计试题

课程代码:02275

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

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

1.下列存储设备中,属于主机范畴的是( ) A.光盘 B.硬盘 C.内存 D.U盘 2.下列属于计算机软件系统的是( )

A.内存储器 B.操作系统 C.显示器 D.CPU 3.在Turbo C2.0中,在主菜单File项中选择Os Shell后,要重新回到Turbo C2.0,应使用的命令是( ) A.Return B.Exit C.Quit D.New 4.下面合法的C语言标识符是( ) A.int_ B.int C.π D.file.c 5.若有int a,b;下面正确使用变量a,b的表达式是( ) A.7.0%3.0 B.(a+b)++ C.7++ D.a+′a′+b 6.下面几种运算符中,优先级最低的是( ) A.| | B., C.= D.?:

7.设有int a=3,b=-4,c=5;表达式(a>b)?a&&c<0:b的值是( ) A.0 B.1 C.3 D.-4

8.设有int x=2,y,z;执行z=y=x++;后变量y的值是( ) A.0 B.1 C.2 D.3

9.若有int a=8,b=5;语句printf(“%d”,a>b);的执行结果是( ) A.0 B.1 C.5 D.8 10.下面程序的输出结果是( ) main( )

{int a=3,b=5; a+=b;b+=a;

printf(“%d,%d”,a,b);} A.3,5 B.5,3 C.8,13 D.13,21 11.若有int a=8,b=12,max,min;执行语句 if(a>b){max=a;min=b;} else{max=b;min=a;} 的结果是( )

A.max的值是8,min的值是12 B.max的值是8,min的值是8 C.max的值是12,min的值是8 D.max的值是12,min的值是12 12.执行下面程序段后,a的值是 int a=100; do

{a++;}while(a>120);( ) A.100 B.101 C.120 D.121

13.若有定义int ch[5][4];则数组ch中的元素的个数是( ) A.9 B.12 C.15 D.20

14.若有定义char str[20];能使数组str得到字符串\的正确输入方法是( ) A.gets(str); B.str=getchar( ); C.scanf(\%c\,str); D.scanf(\%s\,str); 15.若主函数调用funl函数,而funl函数调用fun2函数,这种逐级调用称为( ) A.直接递归调用 B.间接递归调用 C.并行调用 D.嵌套调用

学习提升能力 第 1 页 (共 6 页) 知识改变命运

16.下面关于函数参数的说法中,不正确的是( ) ...

A.实参可以是常量、变量或表达式 B.形参可以是常量、变量或表达式 C.实参可以是数组元素或数组名 D.形参应与其对应的实参类型一致

17.若有定义int b[2][3] ={0},(*p)[3]=b;对b数组第i行第j列(设i,j已正确说明并赋 值)元素的不正确的引用是( ) ...

A.*(*(p+i)+j) B.*(p[i]+j) C.*(p+i)+j D.(*(p+i))[j] 18.设有下面的结构体和结构变量定义: Struct tea {

Char *name;

float price,weight; };

struct tea teal={\,2.0,28.5}; struct tea *p_struct=&teal; 语句:

printf(\%s,%.1f \,p_struct—>name,p_struct—>price*p_struct—>weight); 的输出结果是( )

A.57.0 B.57.0,green_tea C.green_tea,57.0 D.green_tea 19.若有定义int x=5,y=6;下面表达式值为0的是( )

A.x^x B.x&y C.x|y D.y>>2 20.下列函数中向文件一次读一个字符的函数是( )

A.fgetc B.fputc C.fgets D.fputs

二、多项选择题(本大题共5小题,每小题2分,共10分) 在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。

21.与十进制100等值的数有( )

A.(1100100)2 B.(1011011)2 C.(144)8 D.(64)16 E.(5F)16 22.下面合法的C语言常量有( )

A.′tc′ B.3e2.5 C.0xfde D.1e8 E.′\\n′ 23.下面属于C语言中输入或输出函数的有( )

A.scanf B.printf C.putchar D.main E.pow 24.下面关于函数的说法中,不正确的有( ) ...A.定义函数时,形参的类型说明可以放在函数体内 B.return后边的值不能为表达式

C.如果函数值的类型与返回值类型不一致,以函数值类型为准 D.如果形参与实参的类型不一致,以实参类型为准 E.形参与实参的对应关系由形参名和实参名决定 25.设有关于结构体类型的定义: struct database

{

char name[20]; float speed;

}dbl={\,125600.56},db2,*p=&db2; 下面选项中语句正确的有( ) A.p=&dbl; B.p=dbl; C.strcpy(p—>name,\; D.p—>speed=dbl.speed; E.strcpy(p—>name,dbl.name)

学习提升能力 第 2 页 (共 6 页) 知识改变命运

三、简答题(本大题共4小题,每小题4分,共16分) 26.下面是求1到100之和的程序 main( )

{ int i,sum=0;

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

sum+=i;

printf(\}

问如何修改循环体,使其仅求前10个数之和。main( ) { int i,sum=0;

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

sum+=i;

printf(\}

27.若有下面定义:

int num[10]={0,1,2,3,4,5,6,7,8,9),*p=num; 设数组num的首地址是65484。

问:(1)表达式p+8表示什么?其值是多少? 65484+16 (2)表达式*(p+8)表示什么?其值是多少? 8

28.设有说明:unsigned x=0x1234;下面表达式(1)、(2)的运算结果的十六进制值是什么? (1)(x&0xff00)>>8|(x&0xff)<<8 (2)x&0xff00>>8|x&0xff<<8 29.设有说明:

struct island {int id;char name[10]; float area;}a,*p=&a;写出对p所指的成员id、area分别赋值101、34521.65,使p所指的指针成员name指向\的C语句分别是: p->id=101;p->area=345212.65;strcpy(p->name,”wang”); 四、阅读分析题(本大题共6小题,每小题5分,共30分) 30.阅读下列程序并写出运行结果。 main( )

{ int a=55,x,y; x=(int)(a/8.0); y=a-8*x;

printf(\%d,%d\n\,x,y); } 6,7

31.阅读下列程序并写出运行结果。 main( )

{ float x;int a=0; scanf(\%f \,&x); switch(x/10-5) { case 7: a++;

case 6:a++;printf(\%d,\,a); case 5:a++;break; case 4:a++;

default:a++;printf(\%d,\,a); case 1:a+=2: }

学习提升能力 第 3 页 (共 6 页) 知识改变命运

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

(1)当程序运行后输入115.5后,写出程序的执行结果。1,2 (2)当再次运行程序后输入45后,写出程序的执行结果。1,3 32.阅读下列程序并写出运行结果。 main( )

{ int s=0,k=1,i; for(i=0;i<10;i++) { k=k+i; s+=k;

if(i>3) break; s+=2*k:

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

printf(\%d\n\,s); } S=3 S=9 S=21 S=42 S=53

33.阅读下列程序并写出运行结果。 main( )

{ int a[4][4],i,j; for( i=1;i<=3;i++)

for( j=1;j<=3;j++) a[i][j]=i+j;

for(i=1;i<4;i++){ for(j=1;j<=i;j++)

printf(\%3d\,a[i][j]); printf(\\n\; } } 2 3 4 4 5 6

34.阅读下列程序并写出运行结果。 int sum1; main( )

{ int sum2=0,i,f1(int),f2(int); for(i=1;i<=5;i++) sum1+=f1(i);

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

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

int f1(int a)

{ static int s1=1;

学习提升能力 第 4 页 (共 6 页) 知识改变命运

s1*=a; return s1; }

int f2(int a) { auto int s2=1; s2*=a; return s2; }

Sum1=153 Sum2=15

35.阅读下列程序并写出运行结果。 main( )

{ char s[]=\,*q=s; int a=0;

for(;q

printf(\\na=%d\n\,a); }

int f(char*p) { int x=0;

while(*p++!=′\\0′) x++; return x; } abcde a=10

五、编程题(本大题共2小题,每小题12分,共24分)

36.从键盘上输入30个整数,输出其中能被3整除的数,并求出所有能被3整除的数之和。 #include \main() {

int a[30],i,sum=0;

printf(\ for(i=0;i<=29;i++) scanf(\ for(i=0;i<=29;i++) if(a[i]%3==0)

{ printf(\ sum=sum+a[i]; }

printf(\ getch(); }

37.从二进制文件c:\\abc.dat中读出10个float型数据存放于数组a中,然后将数组a中的数据按从小到大的次序输出在屏幕上。 #include \main()

{ FILE *fp;

学习提升能力 第 5 页 (共 6 页) 知识改变命运

float a[10] ,x; int i=0,j=0;

if((fp=fopen(\ exit(0);

while(fscanf(fp,\ fclose(fp);

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

for(j=0;j<=9-i;j++) if(a[j]>a[j+1]) { x=a[j];

a[j]=a[j+1]; a[j=1]=x; }

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

printf(\}

学习提升能力 第 6 页 (共 6 页) 知识改变命运

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

Top