admin 管理员组文章数量: 1087139
2024年3月7日发(作者:怎样使用eclipse)
二级C语言笔试-420
(总分93,考试时间90分钟)
一、选择题
1. 算法的空间复杂度是指
A) 算法程序的长度 B) 算法程序中的指令条数
C) 算法程序所占的存储空间 D) 执行算法需要的内存空间
2. 以下选项中可以作为C语言中合法整数的是 ______。
A) 10110B B) 0386 C) 0Xffa D) x2a2
3. 下列叙述中正确的是( )。
A) 线性链表的各元素在存储空间中的位置必须是连续的
B) 线性链表的头元素一定存储在其他元素的前面
C) 线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面
D) 线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的
4. 在软件开发中,需求分析阶段产生的主要文档是( )。
A) 数据字典 B) 详细设计说明书
C) 数据流图说明书 D) 软件需求规格说明书
5. 在软件开发中,需求分析阶段产生的主要文档是______。
A) 软件集成测试计划 B) 软件详细设计说明书
C) 用户手册 D) 软件需求规格说明书
6. 结构化程序设计主要强调的是( )。
A) 程序的规模 B) 程序的效率
C) 程序设计语言的先进性 D) 程序的易读性
7. 模块本身的内聚是模块独立性的重要性度量因素之一。在7类内聚中,具有最强内聚的—类是______。
A) 顺序性内聚 B) 过程性内聚 C) 逻辑性内聚 D) 功能性内聚
8. 从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为______。
A) EXIT B) QUIT C) RET D) MSDOS
9. 在数据库设计中,将E-R图转换成关系数据模型的过程属于( )。
A) 需求分析阶段 B) 逻辑设计阶段 C) 概念设计阶段 D) 物理设计阶段
10. 下列说法正确的是( )。
A) 一个C程序可以有多个主函数
B) 一个C语言的函数中只允许有一对花括号
C) C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内
D) 在对C程序进行编译时,可以发现注释行中的拼写错误
11. 若变量已正确定义并赋值,以下符合C语言语法的表达式是
A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b
12. 若有语句:char*line[5];,以下叙述中正确的是
A) 定义line是一个数组,每个数组元素是一个基类型为char的指针变量
B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
C) 定义line是一个指针数组,语句中的。号称为间址运算符
D) 定义line是一个指向字符型函数的指针
13. 以下选项中能表示合法常量的是( )。
A) 整数:1,200 B) 实数:1.5E2.0
C) 字符斜杠:'' D) 字符串:"007
14. 下列不能正确表示代数式2abcd的C语言表达式是( )。
A.2*8-*b/c/d B.a*b/c/d*2
C.a/c/d*b*2 D.2*a*b/c*d
15. 有以下程序段
char ch; int k
ch='a'; k=12;
printf("%c,%d,",ch,ch,k); printf("k=%dn",k);
已知字符a的ASCII码值为97,则执行上述程序段后输出结果是
A) 因变量类型与格式描述符的类型不匹配输出无定值
B) 输出项与格式描述符个数不符,输出为零值或不定值
C) a,97,12k=12
D) a,97,k=12
16. 有定义语句:int b;char c[10] ;则正确的输入语句是( )。
A) seanf("%d%s" ,&b,&c); B) scanf("%d%s",&b,c);
C) seanf("%d%s",b,c); D) scanf("%d%s",b,&c);
17. 有以下程序:
#include<stdio.h>
main()
int a=6,b=7,m=1;
switch(a%2)
case 0:m++;break;
case 1 :m++;
switch(b%2)
defaut:m++;
case0:m++;break;
printf("%dn",m);
A) 1 B) 2 C) 3 D) 4
18. 有以下程序段
int a,b,c;
a=10; b=50; c=30;
if(a>b)a=b, b=c; c=a;
printf("a=%d b=%d c=%dn",a,b,c);
程序的输出结果是______。
A) a=10 b=50 c=10 B) a=10 b=50 c=30
C) a=10 b=30 c=10 D) a=50 b=30 c=50
19. 数字字符0的ASCII值为48,若有以下程序
main()
char a='1',b='2';
printf("%c,",b++);
printf("%dn",b-a);
程序运行后的输出结果是______。
(A) 3,2
(B) 50,2
(C) 2,2
(D) 2,50
20. 下面程序的运行结果是
#include<stdio.h>
main()
int a=28,b;
char s[10],*p;
p=s;
dob=a%16;
if(b<10) *p=b+48;
else*p=b+55;
p++;a=a/5;while(a>0);
*p='0';puts(s);
A) 10 B) C2 C) C51 D) 0
21. 设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是______。
A) n=0;while((ch=getchar())!='n')n++; B) n=0;while(getchar()!='n')n++;
C) for(n=0;getchar()!='n';n++); D) n=0;for(ch=getchar();ch!='n';n++);
22. 有下列程序:
#include<stdio.h>
int f(int x,int y)
return((y-x)*x);)
main()
int a=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf("%dn",d);
程序运行后的输出结果是( )。
A.10 B.9 C.8 D.7
23. 有以下程序:
#include<stdio.h>
void fun(int*s,int nl,int n2)
int i,j,t;
i=nl;j=n2;
while(i<j)t=s[i];s[i]=s[j];s[j]=t;i++;j--;
main()
int a[10]=1,2,3,4,5,6,7,8,9,0,k;
fun(a,0,3);fun(a,4,9);fun(a,0,9);
for(k=0;k<10;k++)printf("%d",a[k]);printf("n");
程序运行的结果是______。
A) B) 4321098765 C) 5678901234 D)
24. 设有以下语句:
char str1 []="string"mstr2 [8],*str3,*str4=="string";
则 ______不是对库函数的正确调用。
A) strcpy(str1,"HELLO1"); B) strcpy(str2,"HELLO2");
C) strcpy(str3,"HELLO3"); D) strcpy(str 4,"HELLO4");
25. 以下程序运行后的输出结果是
main( )
char s[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%sn",p);
A) ABCD
BCD
CD
D
B) A
B
C
D
C) B
C
D
D) BCD
CD
D
26. 设函数fun的定义形式为:
void fun(char ch,float x)…
则以下对函数fun的调用语句中,正确的是______。
A) fun("abc",3.0); B) t=fun('D',16.5);
C) fun('65',2.8); D) fun(32,32);
27. 若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是( )。
A.p=a B.q[i]=a[i]
C.p=a[i] D.p=&a[2][1]
28. 若有定义int a[10],*p=a,则p+6表示( )。
A) 数组元素a[5]的值 B) 数组元素a[5]的地址
C) 数组元素a[6]的地址 D) 数组元素a[0]的值加上5
29. 设int x=7,则~X的值是( )。
A.-8 B.7 C.-1 D.1
30. 下列能正确进行字符串赋值的是( )。
A) chars[5]="ABCDE"; B) char s[5]+'A','B','C','D','E'),
C) char*s;s="ABCDE"; D) char*s;printf("%S''S);
31. 若有下列说明,则( )不是对strcpy库函数的正确的调用。strcpy库函数用于复制一个字符串:char*str1="abcdt",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";
A) strcpy(str2,str1) B) strcpy(str3,str1)
C) strcpy(str4,str1) D) strcpy(str5,str1)
32. 有以下程序段
typedef struct node(int data; struct node *next;) *NODE;
NODE p;
以下叙述中正确的是______。
(A) P是指向struct node结构变量的指针的指针
(B) NODE p;语句出错
(C) P是指向struct node结构变量的指针
(D) P是struct node结构变量
33. 下列叙述中错误的是( )。
A) 在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
B) 在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C) 在C语言中,外部变量的隐含类型是自动存储类别
D) 在C语言中,函数形参的存储类型是自动(auto)类型的变量
34. 有以下程序:
#define f(x)(x*x)
main()
int i1,i2;
i1=f(8)/f(4);i2=f(4+4)/f(2+2);
printf("%d,%dn",i1,i2);
程序运行后的输出结果是______。
A) 64,28 B) 4,4 C) 4,3 D) 64,64
35. 有以下程序:
#include<stdio.h>
main()
FTLE*fp;int a[10]=1,2,3,i,n;
fp=fopen("","w";
for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);
fprintf(fp,"n");
fclose(fp);
fp=fopen("","r");
fscanf(fp,"%d",&n);
fclose(fp);
printf("%dn",n);
程序的运行结果是______。
A) 12300 B) 123
C) 1 D) 321
36. 以下函数值的类型是______。
fun(float x)
float y;
y=3*x-4;
return y;
A) int B) 不确定 C) void D) float
37. 如果需要打开一个已经存在的非空文件“FILE”并进行修改,正确的语句是( )。
A) fp=fopen("FILE","r"); B) fp=fopen("FILE","a+");
C) fp=fopen("FILE","w+"); D) fp=fopen("FILE","r+");
38. 程序中若有如下说明和定义语句
char fun(char *);
main()
char *s="one",a[5]=0,*f1)()=fun,ch;
…
以下选项中对函数fun的正确调用语句是______。
A) (*f1)(a); B) *f1(*s); C) fun(&a); D) ch=*f1(s);
39. fscanf函数的正确调用形式是( )。
A) fscanf(文件指针,格式字符串,输出表列);
B) fscanf(格式字符串,输出表列,文件指针);
C) fscanf(格式字符串,文件指针,输入表列);
D) fscanf(文件指针,格式字符串,输入表列);
40. 有以下程序段:
int a[10]=1,2,3,4,5,6,7,8,9,10,*p=&a[3],b;
b=p[5];
则b中的值是( )。
A) 5 B) 6 C) 8 D) 9
二、填空题
41. 结构化程序设计的3种基本结构分别是顺序、选择和______。
42. 在面向对象方法中,类的实例称为______。
43. 数据结构分为逻辑结构和存储结构,循环队列属于______结构。
44. 有以下程序:
main()
char str[]="xyz", *ps=str;
while(* ps)ps++;
for(ps--; ps-str>=0;ps--)puts(ps);
执行后的输出结果是 。
45. 若a=1,b=2,c=3,d=4;则条件表达式a>b?a:c<d?c:d的结果为______。
46. 下列程序的输出结果是______。
#include<stdio.h>
main()
int x=1,y=1,a=1,b=1;
switch(x)
case 1:
switch(y)
case 0:a++;break;
case 1:b++;break;
case 2:
a++;b++;break;
printf("a=%d,b=%dn",a,b);
47. 有以下程序,若运行时从键盘输入:18,11<回车>,则程序的输出结果是______。
main()
int a,b;
printf("Enter a, b:");scanf("%d, %d",&a,&b);
while(a!=b)
while(a>b)a-=b;
while(b>a)b-=a;
printf("%3d%3d",a,b);
48. 下列程序的运行结果是______。
#include<stdio.h>
main()
int a,b,c,n;
a=2;b=0;c=1;n=1;
while(n<=3)
c=c*a;b=b+c;++n;
printf("b=%d",b);
49. 下列语句的输出结果是______。
char s[20]= "aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
50. 以下程序的功能是计算:s=1+12+123+1234+12345。请填空。
main()
int t=0,s=0,i;
for(i=1;i<=5;i++)
t=i+______;s=s+t;
printf("s=%dn",s);
51. 设有定义:
struct person
int ID;char name[12];p;
请将scanf("%d",______);语句补充完整,使其能够为结构体变量p的成员ID正确读入数据。
52. 函数void fun(float *sn,int n)的功能是:根据以下公式计算s,计算结果通过形参指针 sn传回;n通过形参传入,n的值大于或等于0。请填空。
void fun(float *sn,int n)
float s=0.0,w,f=-1.0;
int i;
for(i=0;i<=n;i++)
f= * f;
w=f/(2*i+1);
s+=w;
=s;
53. 下列程序运行后的输出结果是______。
#include<stdio.h>
main()
char s[20];
scanf("%s",s);
printf("%s",s);
运行程序,输入HOW ARE YOU。
54. 下面程序的功能是将一个字符串str的内容倒序,请填空。
#inelude <stdio.h>
#include <strins.h>
main()
int i,j, ;
charstr[]="1234567";
for(i=0,j=strlen(str) ;i<j; i++,j--)
k=str[i];str[i]=str[j];str[j]=k;
printf("%sn",str);
55. 下列程序的功能是:将输入的正整数按逆序输出。例如:若输入135则输出531。请填空。
#include<stdio.h>
main()
int n,s;
printf("Enter a number:");scanf("%d",&n);
printf("Output:");do
s=n%10;printf("%d",s); ______;
while(n!=0);printf("n");
版权声明:本文标题:二级C语言笔试-420_真题-无答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1709778660a546331.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论