admin 管理员组文章数量: 1087139
2024年3月7日发(作者:steam十大耐玩单机游戏)
二级C语言笔试-310
(总分86,考试时间90分钟)
一、选择题
1. 在设计程序时,应采纳的原则之一是( )。
A. 不限制goto语句的使用 B. 减少或取消注解行
C. 程序越短越好 D. 程序结构应有助于读者理解
2. 若有下面的程序段:
chars[]="china";char *p;p=s;
则下列叙述正确的是( )。
A. s和p完全相同 B. 数组s中的内容和指针变量p中的内容相等
C. 数组s的长度和p所指向的字符串长度相等 D. *p与s[0]相等
3. 设有以下说明语句:
struct stu
int a;
float b;
stutype;
则下面叙述不正确的是( )。
A. struct是结构体类型的关键字
B. structstu是用户定义的结构体类型
C. stutype是用户定义的结构体类型名
D. a和b都是结构体成员名
4. 若运行时给变量x赋值12,则以下程序的运行结果是( )。
#include<stdio.h>
main()
int x,y;
scanf("%d",&x);
y=x>12? x+10:x-12;
printf("%dn",y);
A. 0 B. 22
C. 12 D. 10
5. 若有以下定义:
struct link
int data;
struct link *next;
a,b,c,*p,*q;
且变量a和b之间已有下图所示的链表结构:
指针p指向变量a,指针q指向变量c,则能够把c插入到a和b之间并形成新的链表的语句组是( )。
A. next=c;=b;
B. next=q;=;
C. p->next=&c;q->next=p->next;
D. (*p).next=q; (*q).next=&b;
6. 若fp是指向某文件的指针,且通过该文件指针读数据已读到文件末尾,则函数feof(fp)的返回值是( )。
A. EOF B. -1
C. 1 D. NULL
7. 下列叙述中,不属于软件需求规格说明书的作用的是( )。
A. 便于用户、开发人员相互理解和交流
B. 反映用户问题的结构,可以作为软件开发工作的基础和依据
C. 作为确认测试和验收的依据
D. 便于开发人员进行需求分析
8. 下列程序执行后的输出结果是( )。
#include<stdio.h>
void func(int *a,int b[])
b[0]=*a+6;
main()
int a,b[5];
a=0;b[0]=3;
func(&a,b);
printf("%dn",b[0]);
A. 6 B. 7
C. 8 D. 9
9. 有以下程序:
#include<stdio.h>
float fun(int x,int y)
return(x+y);
main()
int a=2,b=5,c=8;
printf("%3.0fn",fun((int)fun(a+c,b),a-c));
程序运行后的输出结果是( )。
A. 编译出错 B. 9
C. 21 D. 9.0
10. 已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为( )。
A. GEDHFBCA B. DGEBHFCA
C. ABCDEFGH D. ACBFEDHG
11. 调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( )。
A. 地址传递 B. 单向值传递
C. 由实参传形参,再由形参传实参 D. 传递方式由用户指定
12. 若变量已正确定义并赋值,以下符合C语言语法的表达式是( )。
A. a:=b+1 B. a=b=c+2
C. int 18.5%3 D. a=a+7=c+b
13. 若有以下调用语句,则不正确的fun函数的首部是( )。
main()
int a[50],n;
fun(n,&a[9]);
┆
A. void fun(int m,int x[])
B. void fun(int s,int h[41])
C. void fun(int p,int *s)
D. void fun(int n,int
14. 设int x=1,y=1;表达式(!x||y--)的值是( )。
A. 0 B. 1
C. 2 D. -1
15. fscanf函数的正确调用形式是( )。
A. fscanf(文件指针,格式字符串,输出表列);
B. fscanf(格式字符串,输出表列,文件指针);
C. fscanf(格式字符串,文件指针,输入表列);
D. fscanf(文件指针,格式字符串,输入表列);
16. 若变量已正确说明为float型,要通过scanf("%f%f%f",&a,&b,&c);给a赋值10.0,b赋值22.0,c赋值33.0,下列不正确的输入形式是( )。
A. 10<回车>22<回车>33<回车>
B. 10.0,22.0,33.0<回车>
C. 10.0<回车>22.0 33.0<回车>
D. 10 22<回车>33<回车>
17. fseek函数的正确调用形式是( )。
A. fseek(文件指针,起始点,位移量)
B. fseek(文件指针,位移量,起始点)
C. fseek(位移量,起始点,文件指针)
D. fseek(起始点,位移量,文件指针)
18. 有如下程序:
#include<stdio.h>
main()
float x=2.0,y;
if(x<0.0) y=0.0;
else if(x<10.0)y=1.0/x;
else y=1.0;
printf("%fn",y);
该程序的输出结果是( )。
A. 0.000000 B. 0.250000
C. 0.500000 D. 1.000000
19. 在一个C语言程序中,( )。
A. main函数必须出现在所有函数之前
B. main函数可以在任何地方出现
C. main函数必须出现在所有函数之后
D. main函数必须出现在固定位置
20. 在C语言中引用数组元素时,其数组下标的数据类型只能是( )。
A. 整型常量 B. 整型表达式
C. 整型常量或整型表达式 D. 任何类型的表达式
21. 单个用户使用的数据视图的描述称为( )。
A. 外模式 B. 概念模式
C. 内模式 D. 存储模式
22. 在下列选项中,没有构成死循环的是( )。
A. int i=100;
while(1)
i=i%100+1;
if(i>100)break;
B. for(;;);
C. int k=10000;
dok++;while(k>10000);
D. int s=36;
while(s) --s;
23. 已定义以下函数:
fun(char * p2,char * p1)
while((* p2=*p1)!='0')p1++;p2++;
此函数的功能是( )。
A. 将P1所指字符串复制到p2所指内存空间,
B. 将p1所指字符串的地址赋给指针p2
C. 对p1和p2两个指针所指字符串进行比较
D. 检查p1和p2两个指针所指字符串中是否有'0'
24. 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。
A. 函数调用可以作为独立的语句存在 B. 函数调用可以作为一个函数的实参
C. 函数调用可以出现在表达式中 D. 函数调用可以作为一个函数的形参
25. 以下程序的运行结果是( )。
#include <stdio.h>
main()
st,uct date
int year,month,day;today;
printf("%dn",sizeof(struct date));
A. 6 B. 8
C. 10 D. 12
26. C语言中最简单的数据类型包括( )。
A. 整型、实型、逻辑型 B. 整型、实型、字符型
C. 整型、字符型、逻辑型 D. 字符型、实型、逻辑型
27. 有以下程序:
#include<stdio.h>
#define F(X,Y) (X)*(Y)
main()
int a=3,b=4;
printf("%dn",F(a++,b++));
程序运行后的输出结果是( )。
A. 12 B. 15
C. 16 D. 20
28. 有以下程序:
#include<stdio.h>
main()
int i=1,j=1,k=2;
if((j++||k++)&&i++) printf("%d,%d,%dn",i,j,k);
执行后输出结果是( )。
A. 1,1,2 B. 2,2,1
C. 2,2,2 D. 2,2,3
29. 下列可用于C语言用户标识符的一组是.( )。
A. void,define,WORD B. a3_b3,_123,Car
C. For,-abc,IF Case D. 2a,DO,sizeof
30. 若有语句int * point,a=4;和point=&a;下面均代表地址的一组选项是( )。
A. a,point,*&a B. &*a,&a,*point
C. *&point,*point,&a D. &a,& * point,point
31. 以下程序的输出结果是( )。
#include <stdio.h>
charcchar(char eh)
if(ch>='A,&&ch<='Z') ch=ch-'A'+'a';
return ch;
main()
char s[]="ABC+abc=defDEF",*p=s;
while(*p)
*p=cchsr(*p); p++;
printf("%sn",s);
A. abc+ABC=DEFdef B. abc+abc=defdef
C. abcABCDEFdef D. abcabcdefdef
32. 有如下程序:
#include<stdio.h>
main()
int n=9;
while(n>6)n--;printf("%d",n);
该程序的输出结果是( )。
A. 987 B. 876
C. 8765 D. 9876
33. 若有说明语句char c='72';则变量c( )。
A. 包含1个字符 B. 包含2个字符
C. 包含3个字符 D. 说明不合法,c的值不确定
34. 表达式0x13^0x17的值是( )。
A. 0x04 B. 0x13
C. 0xE8 D. 0x17
35. 有如下程序:
#include<stdio.h>
main()
int x=1,a=0,b=0;
switch(x)
casc 0:b++;
case 1:a++;
case 2:a++;b++;
printf("a=%d,b=%dn",a,b);
该程序的输出结果是( )。
A. a=2,b=1 B. a=1,b=1
C. a=1,b=0 D. a=2,b=2
36. 以下说法正确的是( )。
A. C程序总是从第一个函数开始执行
B. 在C程序中,被调用的函数必须在main函数中定义
C. C程序总是从main函数开始执行
D. C程序中的main函数必须放在程序的开始部分
37. 以下叙述中正确的是( )。
A. C语言比其他语言高级
B. C语言可以不用编译就被计算机识别并执行
C. C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D. C语言出现最晚,具有其他语言的一切优点
38. 如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是( )。
A. e3,e1,e4,e2 B. e2,e4,e3,e1
C. e3,e4,e1,e2 D. 任意顺序
39. 有以下程序:
#include<stdio.h>
void ss(char *s,char t)
while(*s)
if(*s==t) *s=t-'a'+'A';
s++;
main()
char strl[20]="abcddfefdbd",c='d';
ss(strl,c);
Printf("%sn",strl);
程序运行后的输出结果是( )。
A. ABCDDEFEDBD B. abcDDfefDbD
C. abcAAfefAbA D. Abcddfefdbd
40. 树是结点的集合,它的根结点数目是( )。
A. 有且只有1 B. 1或多于1
C. 0或1 D. 至少2
41. 以下程序中函数sort的功能是对数组a中的数据进行由大到小的排序:
#include<stdio.h>
voidsort(int a[],int n)
int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j])
t=a[i];a[i]=a[j];a[j]=t;
main()
int aa[]=1,2,3,4,5,6,7,8,9,10,i;
son(&aa[3],5);
for(i=0;i<10;i++)
printf("%d,",aa[i]);
printf("n");
程序运行后的输出结果是( )。
A. 1,2,3,4,5,6,7,8,9,10,
B. 10,9,8,7,6,5,4,3,2,1,
C. 1,2,3;8,7,6,5,4,9,10,
D. 1,2,10,9,8,7,6,5,4,3,
42. 已知
int t=0;
while(t=1)…
则以下叙述正确的是( )。
A. 循环控制表达式的值为0 B. 循环控制表达式的值为1
C. 循环控制表达式不合法 D. 以上说法都不对
43. C语言中运算对象必须是整型的运算符是( )。
A. %= B. /
C. = D. <=
44. 程序设计语言的基本成分是数据成分、运算成分、控制成分和( )。
A. 对象成分 B. 变量成分
C. 语句成分 D. 传输成分
45. 若有说明int a[3][4];则下面属于a数组元素的非法引用的是( )。
A. a[0][2*1] B. a[1][3]
C. a[4-2][0] D. a[0][4]
46. 下列不属于软件工程三个要素的是( )。
A. 工具 B. 过程
C. 方法、 D. 环境
47. 若变量a,i已正确定义,且i已正确赋值,下面合法的语句是( )。
A. a==1 B. ++i;
C. a=a++=5; D. a=int(i);
48. 将E-R图转换到关系模式时,实体与联系都可以表示成( )。
A. 属性 B. 关系
C. 键 D. 域
49. SQL语言又称为( )。
A. 结构化定义语言 B. 结构化控制语言
C. 结构化查询语言 D. 结构化操纵语言
50. 下列苯于C语言数据文件的叙述中正确的是( )。
A. 文件由ASCII码字符序列组成,C语言只能读写文本文件
B. 文件由二进制数据序列组成,C语言只能读写二进制文件
C. 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D. 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
二、填空题
1. 算法的基本特征是可行性、确定性、 【1】 和拥有足够的情报。
2. 在长度为n的有序线性表中进行二分查找,最坏的情况下,需要的比较次数为 【2】 。
3. 在面向对象的程序设计中,类描述的是具有相似性质的一组 【3】 。
4. 通常将软件产品从提出、实现、使用维护到不再使用的过程称为 【4】 。
5. 数据库管理系统常见的数据模型有层次模型、网状模型和 【5】 三种。
6. 设y是int型变量,请写出y为奇数的关系表达式 【6】 。
7. 设int a=5,b=6,表达式(++a= =b--)? ++a:--b的值是 【7】 。
8. 下列程序的输出结果是 【8】 。
#include<stdio.h>
main()
char b[]="Hello you";
b[5] =0;
printf("%sn",b);
9. 当调用函数时,实参是一个数组名,则向函数传递的是 【9】 。
10. 以下程序段的输出结果是 【10】 。
int a=1234;
printf("%2dn",a);
11. 用高级语言编写的程序称为 【11】 程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。
12. 以下程序的输出结果是 【12】 。
#include<stdio.h>
main()
int a=0;
a+ =(a=8);
printf("%dn",a);
13. 函数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= 【13】 * f;
w=f/(2*i+1);
s+=w;
【14】 =s;
14. 函数fun的功能是:根据以下公式求p的值,结果由函数值返回。m与n为两个正数,且要求m>n。
例如:m=12,n=8时,运行结果应该是495.000000。请在题目的空白处填写适当的程序语句,将该程序补充完整。
#include <stdio.h>
float fun(int m,int n)
int i;
double p=1.0;
for(i=1;i<=m;i++) 【15】 ;
for(i=1;i<=n;i++) 【16】 ;
for(i=1;i<=m-n;i++) p=p/i;
return p;
main()
printf("p=%fn",fun(12,8));
15. 下列程序的运行结果是 【17】 。
#include <stdio.h>
#define M 100
void fun(int m,int *a,int *n)
int i,j=0;
for(i=1;i<=m; i++)
if(i%7==0||i%11==0) a[j++]=i;
*n=j;
main()
int aa[M],n,k;
fun(10,aa,&n);
for(k=0;k<n;k++)
if((k+1)%20==0) printf("n");
else printf("%4d",aa[k]);
printf("n");
16. 下列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串123412132,指定字符1,则输出3。请填空。
#include<stdio.h)
#deftne M 81
int fun(char * ss,char c)
int i=0;
for(; 【18】 ;ss++)
if(*ss==c) i++;
return i;
main()
char a[M],ch;
printf("nPlease enter a string:");gets(a);
printf("nPlease enterachar:");ch=getchar();
printf("nThe number of the char is:%dn",fun(a,ch));
17. 下面的程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为的新文件中,请填空。
#include <stdio.h>
#include<stdlib.h>
FILE*fp;
main()
charch;
if((fp=fopen( 【19】 ))==NULL)exit(0);
while((ch=getchar())!='@') fputc(ch,fp);
fclose(fp);
18. 设有如下宏定义:
#define MYSW AP(z,x,y) z=x;x=y;y=z;
以下程序段通过宏调用实现变量a,b内容交换,请填空。
float a=5,b=16,c;
MYSWAP( 【20】 ,a,b);
版权声明:本文标题:二级C语言笔试-310_真题-无答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1709778602a546328.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论