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. 在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块,
其中 ______的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。
版权声明:本文标题:二级C语言笔试-352_真题-无答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1734886728a1604665.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论