c 2007计算机2级试题,2007年计算机二级C语言模拟试题(2)

本文详细解析了C语言中数组的默认初始值、函数返回值类型、数据结构的使用以及关键概念如继承、内聚和耦合。涉及函数fun的返回值、内存管理和字符串操作等,适合进阶学习者阅读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(31)若有函数内部说明:int a[3][4];则数组a中各元素

A)可在程序的运行阶段得到初值0

B)可在程序的编译阶段得到初值0

C)不能得到确定的初值

D)可在程序的编译或运行阶段得到初值0

正确答案:  C

(32)有如下程序

main()

{ char s[]="ABCD", *p;

for(p=s+1; p

该程序的输出结果是

A)ABCD

BCD

CD

D

B)A

B

C

D

C)B

C

D

D)BCD

CD

D

正确答案:  D

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

main()

{ int a[3][3], *p,i;

p=&a[0][0];

for(i=1; i<9; i++)p[i]=i+1;

printf("%d\n",a[1][2]);}

A)3

B)6

C)9

D)随机数

正确答案:  B

(34)定义如下变量和数组:

int k;

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

则下面语句的输出结果是

for(k=0;k<3;k++)printf("%d",a[k][k]);

A)7 5 3

B)9 5 1

C)9 6 3

D)7 4 1

正确答案:  B

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

main()

{ char arr[2][4];

strcpy(arr,"you"); strcpy(arr[1],"me");

arr[0][3]=′&′;

printf("%s\n",arr);}

A)you&me

B)you

C)me

D)err

正确答案:  A

(36)有以下函数

char fun(char *p)

{return p;}

该函数的返回值是

A)无确切的值

B)形参p中存放的地址值

C)一个临时存储单元的地址

D)形参p自身的地址值

正确答案:  B

(37)以下正确的说法是

A)定义函数时,形参的类型说明可以放在函数体内

B)return后边的值不能为表达式

C)如果函数值的类型与返回值类型不一致,以函数值类型为准

D)如果形参与实参类型不一致,以实参类型为准

正确答案:  C

(38)有以下程序

int f(int n)

{ if(n==1)return 1;

else return f(n-1)+1;}

main()

{ int i,j=0;

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

printf("%d\n",j);}

程序运行后的输出结果是

A)4

B)3

C)2

D)1

正确答案:  B

(39)设有如下定义:

struck sk

{ int a;

float b;

} data;

int *p;

若要使P指向data中的a域,正确的赋值语句是

A)p=&a;

B)p=data.a;

C)p=&data.a;

D)*p=data.a;

正确答案:  C

(40)以下对结构体类型变量的定义中,不正确的是

A)typedef struct aa

{ int n;

float m;

}AA;

AA tdl;

B)#define AA struct aa

AA{ int n;

float m;

} tdl;

C)struct

{ int n;

float m;

} aa;

struct aa tdl;

D)struct

{ int n;

float m;

} tdl;

正确答案:  C

(41)若说明int *p,n;则通过语句scanf能够正确读入数据的程序段是

A)p=&n;scanf("%d",&p);

B)p=&n;scanf("%d",*p);

C)scanf("%d",n);

D)p=&n;scanf("%d",p);

正确答案:  D

(42) 在下述程序中,判断i>j共执行的次数是

main()

{int i=0, j=10, k=2, s=0;

for (;;)

{i+=k;

if(i>j)

{printf("%d",s);

break;

}s+=i;

}

}

A)4

B)7

C)5

D)6

正确答案:  D

(43)以下4个选项中,不能看做一条语句的是

A);

B)a=5,b=2.5,c=3.6;

C)if(a<5);

D)if(b!=5)x=2;y=6;

正确答案:  D

(44)在C语言中,变量的隐含存储类别是

A)auto

B)static

C)extern

D)无存储类别

正确答案:  A

(45)若有以下程序

#include

void f(int n);

main()

{ void f(int n);

f(5);

}

void f(int n)

{ printf("%d\n",n); }

则以下叙述中不正确的是

A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

B)若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f

C)对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明

D)函数f无返回值,所以可用void将其类型定义为无返回值型

正确答案:  C

(46)若有下面的说明和定义

struct test

{ int ml; char m2; float m3;

union uu {char ul[5]; int u2[2];} ua;

} myaa;

则sizeof(struct test )的值是

A)12

B)16

C)14

D)9

正确答案:  A

(47)以下程序的输出是

struct st

{ int x; int *y;} *p;

int dt[4]={ 10,20,30,40 };

struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};

main()

{ p=aa;

printf("%d\n",++(p->x));

}

A)10

B)11

C)51

D)60

正确答案:  C

(48)若有运算符<

A)sizeof,&=,<

B)sizeof,<

C)^,<

D)<

正确答案:  B

(49)函数fseek(pf, OL,SEEK_END)中的SEEK_END代表的起始点是

A)文件开始

B)文件末尾

C)文件当前位置

D)以上都不对

正确答案:  B

(50)有以下程序

#include

main()

{ FILE *fp; int i=20,j=30,k,n;

fp=fopen("d1.dat","w");

fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);

fclose(fp);

fp=fopen("d1.dat","r");

fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);

fclose(fp);

}

程序运行后的输出结果是

A)20 30

B)20 50

C)30 50

D)30 20

正确答案:  A

二 、填空题(1)数据结构分为逻辑结构与存储结构,线性链表属于 【1】 。

正确答案:  1.(存储结构)

(2)在面向对象方法中,类之间共享属性和操作的机制称为 【2】 。

正确答案:  1.(继承)

(3)耦合和内聚是评价模块独立性的两个主要标准,其中 【3】 反映了模块内各成分之间的联系。

正确答案:  1.(内聚)

(4)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属于 【4】 的联系。

正确答案:  1.(一对多或1:N)

(5)数据库设计分为以下6个设计阶段:需求分析阶段、 【5】 、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

正确答案:  1.(数据库概念设计阶段)

(6)以下程序的运行结果是【6】。

#define MAX (a,b)(a>b?a:b)+1

main  ()

{ int i=6,j=8,k;

printf ("%d\n",MAX(i,j));

}

正确答案:  1.(9)

(7)以下程序的功能是从健盘输入若干学生的成绩,并输出最高成绩和最低成绩,当输入负数时结束。请填空。

main ()

{float x,amax,amin;

scanf ("%f",&x);

amax=x;

amin=x;

while (【7】)

{if (x>amax)

amax=x;

else

if【8】

amin=x;

else scanf ("%f",&x);

}

printf ("\n amax=%f\n amin=%f\n",amax,amin);

}

正确答案:  1.(x>0) 2.(x

(8)在对文件操作的过程中,若要求文件的位置指针回到文件的开始处,应当调用的函数是【9】。

正确答案:  1.(rewind()或fseek())

(9)在计算机中,字符的比较是对它们的【10】进行比较。

正确答案:  1.(ASCII码)

(10)在内存中,存储字符′x′要占用1个字节,存储字符串″X″要占用【11】个字节。

正确答案:  1.(2)

(11)下列程序的输出结果是16.00,请填空。

main()

{int a=9, b=2;

float x=【12】, y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n", z );

}

正确答案:  1.(6.6)

(12)设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【13】。要求形参名为b。

main()

{double s[10][22];

int n; ┆

fun(s);

}

正确答案:  1.(void fun(double b[][22]))

(13)下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。

main()

{int i, x, y=1;

scanf("%d", &x);

for(i=2; i<=x/2; i++)

if【14】{ y=0; break;}

printf("%d\n", y);

}

正确答案:  1.((x%i==0))

(14)下面程序的功能是将一个字符串str的内容颠倒过来,请填空。

#include

main()

{ int i,j,【15】;char str[]={"1234567"};

for(i=0,j=strlen(str)【16】;i

{k=str[i];str[i]=str[j];str[j]=k;}

printf("%s\n",str);

}

正确答案:  1.(k) 2.(-1)

(15)以下程序可把输入的十进制数以十六进制数的形式输出,请填空。

main()

{char b[17]={"0123456789ABCDEF"};

int c[64],d,i=0,base=16;

long n;

printf("Enter a number:\n");scanf("%ld",&n);

do{c[i]=【17】;i++;n=n/base;}

while(n!=0);

printf("Transmite new base:\n");

for(--i;i>=0;--i)

{d=c[i];printf("%c",b【18】);}

printf("\n");

}

正确答案:  1.(n%base) 2.([d])

(16)若给fun函数的形参s传送字符串:"]]6354abcc" (其中]表示空格字符),则函数的返回值是【19】。

#include

long fun(char s[])

{long n;int sign;

for(;isspace(*s);s++);

sign=(*s==′-′)?-1:1;

if(*s==′+′||*s==′-′)s++;

for(n=0;isdigit(*s);s++)n=10*n+(*s-′0′);

return sign*n;

}

正确答案:  1.(6354)

(17)设有定义"struct {int a; float b; char c;} abc, *p_abc=&abc;",则对结构体成员a的引用方法可以是abc.a和p_abc【20】a。

正确答案:  1.(->)

本新闻共2页,当前在第2页  1  2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值