admin 管理员组

文章数量: 1087652


2024年12月22日发(作者:poetic)

二级C语言笔试-352

(总分118,考试时间90分钟)

一、选择题

1. 在设计程序时,应采纳的原则之一是( )。

A) 不限制goto语句的使用 B) 减少或取消注解行

C) 程序越短越好 D) 程序结构应有助于读者理解

2. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式

为 ( )

A) a<0

B) ! a

C) a=0

D) a

3. 己知int i,x[3][4];,则不能将x[1][1]的值赋给变量i的语句是______。

A) i=*(*(x+1)+1) B) i=*(*(x+1))

C) i=x[1][1] D) i=*(x[1]+1)

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

main()

int i,x[3][3]=9,8,7,6,5,4,3,2,1,*p=&x[1][1];

for(i=O;i<4;i+2)printf("%d",p[i]);

A) 5 2 B) 5 1 C) 5 3 D) 9 7

5. 如下程序的输出结果是( )。

#include<stdio.h>

main()

float x=20,y;

if(x<0.0)y=0.0;

else if (x<10.0)y=1.0/x;

else y=110;

printf("%f¨,y);

A) 0.000000 B) 0.250000 C) 0.500000 D) 1.000000

6. 有以下程序

main ( )

char a[ ]='a','b', 'c','d', 'e','f','g','h','0'; int i,j;

i=sizeof (a);

j=strlen(a);

print f (" %d, %dn" i, j );

程序运行后的输出结果是

A) 9,9 B) 8,9 C) 1,8 D) 9,8

7. 以下选项中不合法的标识符是

A) ptint B) FOR C) &a D) _00

8. 十进制数269转换成十六进制数是 ( )

A) 10E

B) 10D

C) 10C

D) 10B

9. 以下程序的输出结果是

int f()

static int i=0;

int s=1;

s+=i; i++;

return s;

main ( )

int i,a=0;

for (i=0;i<5; i++) a+=f();

printf ( "%dn" ,a);

A) 20 B) 24 C) 25 D) 15

10. 有以下程序:

main()

int a=1,b=2,m=0,n=0,k;

k=(n=b>a)||(m=a>b);

printf("%d,%dn"m,k,m);

程序运行后的输出结果是( )。

A) 0,0 B) O,1 C) 1,0 D) 1,1

11. 关于下面的程序,正确的说法是( )。

int a,i=1;

while(i<=0)

scanf("%d",&a);

i++;

if(a>1) continue;

printf("%d",a);

A) 当a>1时什么也不输出 B) 将输出1个正整数

C) 当a<=1时整个循环结束 D) 运行后无任何结果

12. 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是

A) 概要设计 B) 详细设计 C) 可行性分析 D) 需求分析

13. 设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是( )。

A) x&&y B) x<=y

C) x‖y+z&&y-z D) !((x<y)&&!z‖1)

14. 已知如下定义,则sizeof(a)的值是

struct int i;

char c;

double a;a;

A) 8 B) 9 C) 10 D) 11

15. 以下叙述中正确的是( )。

A.C语言程序将从源程序中第一个函数开始执行

B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

C.C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束

D.main可作为用户标识符,用以命名任意一个函数作为主函数

16. 下列合法的字符型常量是( )。

A) 'x13' B) '081' C) '65' D) "n

17. 设有定义:int m=0;。以下选项的4个表达式中与其他3个表达式的值不相同的是

A) ++m B) m+=1 C) m++ D) m+1

18. 有以下程序

main()

int x[]=1,3,5,7,2,4,6,0,i,j,k;

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

for(j=2; j>=i ; j--)

if(x[j+1]>x[j]) k=x[j]; x[j]=x[j+1]; x[j+1]=k;

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

for(j=4; j<7-i; j++)

if(x[j]>x[j+1])

k=x[j]; x[j]=x[j+1]; x[j+1]=k;

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

printf("%d",x[i]);

printf("n");

程序运行后的输出结果是______。

A) 75310246 B) 01234567 C) 76310462 D) 13570246

19. 有三个关系R、S和T如下:

由关系R和S通过运算得到关系T,则所使用的运算为______。

A) 笛卡尔积 B) 交 C) 并 D) 自然连接

20. 有以下程序:

#include <stdlib.h>

struct NODE

int num; struct NODE *next; ;

main()

struct NODE *p,*q,*r;

p=(struct NODE*)malloc(sizeof(struct NODE));

q=(struct NODE*)mallloc(sizeof(struct NODE));

r=(struct NODE*)malloc(sizeof(struct NODE));

p->num=10;q->num=20; r->num=30;

p->next=q;q->next=r;

printf("%dn",p->num+q->next->num);

程序运行后的输出结果是( )。

A) 10 B) 20 C) 30 D) 40

21. 下面的程序执行后,文件test.t中内容是______。

#include<stdio.h>

void fun(clar *fname,char *st)

FILE*myf;int i;

myf=fopen(fname,"w");

for(i=0;i<stden(st);i++)fputc(st[i],myf);

fclose(myf);

main()

fun("test.t","new world"); fur("test.t","hello,";

A) hello, B) new worldhello C) new world D) hello,rld

22. 设有图书(图书编号,书名,第一作者,出版社)、读者(借书证号,姓名,单位,职称)

和借阅(借书证号,图书编号,借书日期,还书日期)三张表,则表借阅的关键字(键或码)为

A) 借书证号,图书编号 B) 图书编号,借书日期

C) 借书日期,还书日期 D) 借书证号,借书日期

23. 若已建立下面的链表结构,指针p、s分别指向图中所示的结点,则不能将s所指的结点

插入到链表末尾的语句组是 ( )

A.s->next=NULL;p=p->next;p->next=s;

B.p=p->next;s->next=p->next;p->next=s;

C.p=p->next;s-next=p;p->next=s;

D.p=(*p).next;(* s).next=(* p).next;(* p).next=s;

24. 现有如下程序段:

#include "stdio.h"

main()

int a[5][6]=23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1;

int i=0,j=5;

printf("%dn",*(&a[0][0]+2*i+j-2));

则程序的输出结果是

A) 78 B) 23 C) 21 D) 28

25. 有以下程序:

maln()

int i,s=0,t[]=1,2,3,4,5,6,7,8,9;

for(i=0;i<9;i+=2)s+=*(t+i);

printf("%dn",s);

程序执行后的输出结果是______。

A) 45 B) 20 C) 25 D) 36

26. 下列特征中不是面向对象方法的主要特征的是( )。

A) 多态性 B) 继承 C) 封装性 D) 模块化

27. 线性表L=(a1,a2,a3,…,ai,…,an),下列说法正确的是( )。

A) 每个元素都有一个直接前件和直接后件

B) 线性表中至少要有一个元素

C) 表中诸元素的排列顺序必须是由小到大或由大到小

D) 除第一个元素和最后一个元素外,其余每个元素都有一个旦只有一个直接前件和直

接后件

28. 在深度为7的满二叉树中,叶子结点的个数为( )。

A) 32 B) 31 C) 64 D) 63

29. 运行下面的程序,其输出结果为______。

main()

printf("%d,%d",5%-3,-5%3);

A) 2,-2 B) -2,2 C) -2,-2 D) 2,2

30. 有下列二叉树,对此二叉树前序遍历的结果为( )。

A) ACFHIBEDG B) ABCDEFGHI

C) ABDEGCFHI D) ABCDEFHGI

31. 假定x和y为double型,则表达式x=2,y=x+3/2的值是( )。

A) 3.500000 B) 3

C) 2.000000 D) 3.000000

32. C语言中,组成数据文件的成分是______。

A) 记录 B) 数据行 C) 数据块 D) 字符 (字节) 序列

33. 下列能正确定义一维数组的选项是( )。

A) int a[5]=0,1,2,3,4,5; B) char a[]=0,1,2,3,4,5;

C) char a='A','B','C'; D) int a[5]="0123";

34. 冒泡排序在最坏情况下的比较次数是______。

(A) n(n+1)/2

(B) nlog2n

(C) n(n-1)/2

(D) n/2

35. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是______。

A) 函数的实参和其对应的形参共占同一存储单元

B) 形参只是形式上的存在,不会占用具体存储单元

C) 同名的实参和形参占同一存储单元

D) 函数的形参和实参分别占用不同的存储单元

36. 若有以下语句,则以下叙述中正确的是

typedef struct S

int g; char h; T;

A) 可用S定义结构体变量 B) 可用T定义结构体变量

C) S是struct类型的变量 D) T是struct S类型的变量

37. 以下程序运行后,输出结果是______。

#include<stdio.h>

#define PT 5.5

#difine S(x) PT*x*x

main()

int a=1,b=2;

printf("%4.1f/n",S(a+b));

A) 49.5 B) 9.5 C) 22.0 D) 45.0

38. 下列程序的输出结果是______。

#define A100

main()

int i=0,sum=0;

do if(i==(i/2)*2)continue;

sum+=i;

while(++i<A) ;

printf("%dn",sum);

A) 2500 B) 2050 C) 4 D) 0

39. 设有以下说明语句:

struct ex

int x;float y;char z;

example;

在下面的叙述中,不正确的一条是______。

A) struct是结构体类型的关键词 B) example是结构体类型名

C) x,y,2都是结构体成员名 D) struct ex是结构体类型

40. 语句“printf("abhow'are'yboun");”的输出结果是( )。

A) abhow'are'ybou B) abhow'are'ybou

C) how'are'you D) ahow'are'ybou

41. 下列叙述中错误的是______。

(A) 计算机不能直接执行用C语言编写的源程序

(B) C程序经C编译后,生成后缀为.obj的文件是一个二进制文件

(C) 后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件

(D) 后缀为.obj和.exe的二进制文件都可以直接运行

42. 下面对对象概念描述错误的是

A) 任何对象都必须有继承性 B) 对象是属性和方法的封装体

C) 对象间的通讯靠消息传递 D) 操作是对象的动态属性

43. 有以下程序:

void ss(char *s,char t)

while(*s)

if(*s==t)*s=t-'a'+'A';

S++;

main()

char strl[100]="abcddfefdbd",c='d':

ss(strl,c);printf("% sn" ,strl);

程序运行后的输出结果是()。

A) ABCDDEFEDBD B) abcDDfeDbD

C) abcAAfefAbA D) Abcddfefdbd

44. 有以下程序:

main()

inta;char c=10;

float f=100.0;double x;

a=f/=c*=(x=6.5);

printf("%d %d %3.1f %3.1fn",a,c,f,x);

程序运行后的输出结果是 ______。

A) 1 65 1 6.5 B) 1 65 1.5 6.5

C) 1 65 1.0 6.5 D) 2 65 1.5 6.5

45. 设有定义:int k=1,m=2;float f=7;则下列选项中错误的表达式是( )。

A) k=k>=k B) -k++ C) k%int(f) D) k>=f>=m

46. 设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为

变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y,以下所示的输入形式中正确

的是(注:口代表空格字符)

A) 10口X口20口Y<回车> B) 10口X20口Y<回车>

C) 10口X<回车> D) 10X<回车>

20口Y<回车> 20Y<回车>

47. 有以下程序段:

typedef struct NODE

int num;struct NODE*next;

OLD;

以下叙述中正确的是( )。

A) 以上的说明形式非法 B) NODE是一个结构体类型

C) OLD是一个结构体类型 D) OLD是一个结构体变量

48. 有以下程序

#include<stdio.h>

main()

int c;

while((c=getchar())!='n')

switch(c-'2')

case 0:

case 1:putchar(c+4);

case 2:putchar(c+4);break;

case 3:putchar(c+3);

case 4:putchar(c+3);break;

printf("n")

从第一列开始输入以下数据<CR>代表一个回车符。

2743<CR>

程序的输出结果是

A) 66877 B) 668966 C) 6677877 D) 6688766

49. 有以下程序

#include <stdio.h>

main()

FILE*pf,

char *s1="China",*s2="Beijing";

pf=fopen("","wb+");

fwrite(s2,7,1,pf);

rewind(pf); /*文件位置指针回到文件开头*/

fwrite(s1,5,1,pf);

fclose(pf);

以上程序执行后文件的内容是______。

A) China B) Chinang C) ChinaBeijing D) BeijingChina

50. 下面描述中错误的是______。

A) 系统总体结构图支持软件系统的详细设计 B) 软件设计是将软件需求转换为软件

表示的过程

C) 数据结构与数据库设计是软件设计的任务之一 D) PAD图是软件详细设计的表示工

二、填空题

51. 函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t

的第一个不同字符的ASCII码差值,即s>t时返回正值,当s<t时返回负值。请填空。

my_cmp(char *s,char*t)

while(*s==*t)

if(*s=='0')return 0;

++s; ++t;

return______;

52. 若有定义语句:int a=5;,则表达式a++的值是______。

53. 设在主函数中有以下定义和函数调用语句,且fun函数为void类型,请写出fun函数的

首部______。要求形参名为b。

main()

double s[10] [22];

int n;

fun(s);

54. 按照软件测试的一般步骤,______测试应在集成测试之前进行。

55. 软件的调试方法主要有:强行排错法、______和原因排除法。

56. 下列语句能循环______次。

int s=12;

while(s);

--s;

57. "print("%dn",strlen("t"023xABCn"));”语句的输出结果是______。

58. 在面向对象方法中,类之间共享属性和方法的机制称为______。

59. 以下程序运行后的输出结果是______。

fun(int a)

int b=0;static int c=3;

b++; c++;

return(a+b+c);

main()

int i,a=5;

for(i=0;i<3;i++)printf("%d%d",i,fun(a));printf("n");

60. 在一棵二叉树上第6层的结点个数最多是______。

61. 下面rotate函数的功能是:将n行n列的矩阵A转置A',例如

#define N 4

void rotate(int a[][N])

int i,j,t;

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

for(j=0;______;j++)

t=a[i][j];

______;

a[j][i]=t;

62. 以下程序中,for循环体执行的次数是______。

# define N 2

# define M N+1

# define K M+1*M/2

main()

int i;

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

...

...

63. 在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,______负责

数据的模式定义与数据的物理存取构建。

64. 以下程序运行后输入:3,abcde<回车>,则输出结果是______。

# include<string.h>

move(char *str,int n)

char temp int i;

temp=str[n-1);

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp

main()

char s[50];iht n,i,z;

scanf("%d,%s",&n,s);

z=strlen(s);

for(i=1;i<=n;i++)move(s,z);

printf("%sn",s);

65. 下列程序的运行结果是______。

#include<stdio.h>

main()

int a,b,C;

a=3;b=4;c=5;

if(a>B)

if(a>C)

printf("%d",A) ;

elseprintf("%d",B) ;

printf("%dn",C) ;

66. 下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程

序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

char *str="ABCDabcd",temp;

int n,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

temp=______;

str[i]=str[i+1];

______=temp;

printf(______);

下面程序的运行结果是______和______。

#include

#define N 10

#define s(x)x*x

#define f(x)(x*x)

void main()

int i1,i2;

i1=1000/s(N); i2=1000/f(N);

cout<<i1<<" "<<i2;

67.

68.

69. 以下程序的输出结果是______。

#include<stdio.h>

void fun(int x)

if(x/2>0) fun(x/2);

printf("%d",x);

main( )

fun(3);printf("n");

70. 在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块,

其中 ______的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。


本文标签: 程序 结果 输出 函数 数据