1、二级C语言笔试320真题无答案二级C语言笔试-320(总分100,考试时间90分钟)一、选择题 下列各题A) 、B) 、C) 、D) 四个选项中,只有一个选项是正确的。1. 能正确表示逻辑关系a10或a0的C语言表达式是_。A. a=10 or a=0 B. a=0|a=10C. a=10&a=0 D. a=10|a=102. 有如下程序段: #includestdio.h #define Max(a,B) ab?a:b main() int a=5,b=6,c=4,d; d=c+Max(a,B) ; printf(%d,D) ; 其输出结果为_。A. 10 B. 5C. 6 D. 编译错误3
2、. 若变量已正确定义并赋值,下面符合C语言的表达式是_。A. a:=b+1 B. a=b=c+2C. int 18.5%3 D. a=a+7=c+b4. 有如下函数调用语句 func(rec1,rec2+rec3,(rec4,rec5); 该函数调用语句中,含有的实参个数是_。A. 3 B. 4C. 5 D. 有语法错误5. 有如下程序段 int *p,a=10,b=1; p=&a;a=*p+b; 执行该程序段后,a的值为_。A. 12 B. 11C. 10 D. 编译出错6. 检查软件产品是否符合需求定义的过程称为_。A. 确认测试 B. 集成测试C. 验证测试 D. 验收测试7. 有以下函
3、数定义: void fun(int n,double x) 若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用语句是_。A. fun(int y,double m); B. k=fun(10,12.5);C. fun(x,n); D. void fun(n,x);8. 下面一组中都是C语言关键字的是_。A. double Int forB. main while gotoC. volatile break staticD. malloc sizeof new9. 有如下程序段 int a=14,b=15,x; char c=A; x=(a&B) &(cB); 执行该程序段后,x的值为
4、_。A. true B. falseC. 0 D. 110. 下面程序的输出结果是_。 main() char str10,c=a; int i=0; for(;i5;i+) stri=C+; printf(%s,str); A. abcde B. aC. 不确定 D. bcdef11. C语言运算对象必须是整型的运算符是_。A. %= B. /C. = D. =12. 有以下程序: int*f(int *x,int *y) if(*x*y)return x; else return y; main() int a=7,b=8,*p,*q,*r; p=&a;q=&b; r=f(p,q); pr
5、intf(%d,%d,%dn,*p,*q,*r); 程序运行后输出结果是_。A. 7,8,8 B. 7,8,7C. 8,7,7 D. 8,7,813. 下述关于C语言文件的操作的结论中,正确的是_。A. 对文件操作必须先关闭文件 B. 对文件操作必须先打开文件C. 对文件操作顺序无要求 D. 对文件操作前必须先测文件是否存在,然后再打开文件14. 以下叙述不正确的是_。A. 分号是C语言的必要组成部分 B. C程序的注释可以写在句的后面C. 函数是C程序的基本单位 D. 主函数的名字不一定用main表示15. 在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送_。A. 调用语句 B
6、. 命令C. 口令 D. 消息16. 若变量a、i已正确定义,且i已正确赋值,合法的语句是_。A. a1 B. +i;C. a=a+=5; D. a=int(i);17. 将E-R图转换到关系模式时,实体与联系都可以表示成_。A. 属性 B. 关系C. 键 D. 域18. 若已建立如下图所示的单向链表结构: 在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是_。19. 若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是_。A. 1 B. 2C. 2.0 D. 2.520. 设有声明语句char a=72;,则变量a_。
7、A. 包含1个字符 B. 包含2个字符C. 包含3个字符 D. 声明不合法21. 有如下程序 main() char s5=abc,de,fgh; printf(%c,s26); 其输出为_。A. 不确定 B. 编译错误C. g D. 输出null字符22. 假设在turboc2.0采用small模式编译如下程序 main() char a4=a,b; char*b=abc; printf(%d,%d,sizeof(A. ,sizeof( B. ); &nC. 4,3 D. 2,223. 执行语句for(i=1;i+4;);后变量i的值是_。A. 3 B. 4C. 5 D. 不定24. 下列关
8、键字中,不属于C语言变量存储类别的是_。A. register B. autoC. extern D. public25. 有如下程序 main() int y=3,x=3,z=1; printf(%d%dn,(+x,y+),z+2); 运行该程序的输出结果是_。A. 3 4 B. 4 2C. 4 3 D. 3 326. 下面不属于软件设计原则的是_。A. 抽象 B. 模块化C. 自底向上 D. 信息隐蔽27. 有如下程序 main() char ch25=6937,8254,*p2; int i,j,s=0; for(i=0;i2;i+) pi=chi; for(i=0;i2;i+) for
9、(j=0;pij,0;j+=2) s=10*s+(pij-0); printf(%dn,s); 该程序的输出结果是_。A. 69825 B. 63825C. 6385 D. 69382528. 在C语言中,函数中变量的隐含存储类别是_。A. auto B. staticC. extern D. 无存储类别29. 算法一般都可以用_控制结构组合而成。A. 循环、分支、递归 B. 顺序、循环、嵌套C. 循环、递归、选择 D. 顺序、选择、循环30. 有如下程序 main() int x=1,a=0,b=0; switch(x) case 0:b+; case 1:a+; case2:a+;b+;
10、printf(a%d,b=%dn,a,B) ; 该程序的输出结果是_。A. a=2,b=1 B. a=1,b=1C. a=1,b=0 D. a=2,b=231. 有如下程序: main() int a33=1,2,3,4,5,6,i,j,s=0; for(i=1;i3;i+) for(j=0;j=i;j+) s+=aij; printf(%dn,s); 该程序的输出结果是_。A. 18 B. 19C. 20 D. 2132. 数据的存储结构是指_。A. 数据所占的存储空间量 B. 数据的逻辑结构在计算机中的表示C. 数据在计算机中的顺序存储方式 D. 存储在外存中的数据33. 已经定义ch为字
11、符型变量,以下赋值表达式中错误的是_。A. ch='' B. ch=62+3C. ch=NULL D. ch='xaa'34. 运行以下程序后,如果从键盘上输入65 14回车,则输出结果为_。 main() int m,n; printf(Enter m,n:); scanf(%d%d,&m,&n); while(m!=n) while(mn)m-=n; while(nm)n-=m; printf(m=%dn,m); A. m=3 B. m=2C. m=1 D. m=035. 有如下程序 main() int i,sum; for(i=1;i=3;sum+)su
12、m+=i; printf(%dn,sum); 该程序的执行结果是_。A. 6 B. 3C. 死循环 D. 036. 有如下程序 main() float x=2.0,y; if(x0.0)y=0.0; else if(x10.0)y=1.0/x; elsey=1.0; printf(%fn,y); 该程序输出结果是_。A. 0.000000 B. 0.250000C. 0.500000 D. 1.00000037. 下列函数定义中,会出现编译错误的是_。A. max(int x,int y,int*z)B. int max(int x,y) *z=xy?x:y; int z; z=xy?X:y
13、; return z;C. max(int x,int y)D. int max(int x,int y) int z; return xy?x:y; z=xy?x:y; return(z);38. 有如下程序 int func(int a,int B) return(a+B) ; main() int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(%dn,r); 该程序的输出结果是_。A. 12 B. 13C. 14 D. 1539. 有以下程序段: main() int a=5,*b,*c; c=&b;b=&a; 程序在执行了c=&b;b=&a;语句
14、后,表达式*c的值是_。A. 变量a的地址 B. 变量b中的地址C. 变量a中的值 D. 变量b的地址40. 有如下说明: int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为9的表达式是_。A. *p+9 B. *(p+8)C. *p+=9 D. p+841. 在关系数据库中,用来表示实体之间联系的是_。A. 树结构 B. 网结构C. 线性表 D. 二维表42. 有以下函数 char *fun(char*p) return p; 该函数的返回值是_。A. 无确切的值 B. 形参p中存放的地址值C. 一个临时存储单元的地址 D. 形参p自身的地址值43. 下列工具中为
15、需求分析常用工具的是_。A. PAD B. PFDC. N-S D. DFD44. 设有下列二叉树: 对此二叉树中序遍历的结果为_。45. 有如下程序: long fib(int n) if(n2) return(fib(n-1)+fib(n-2); else return(2); main() printf(%ldn,fib(3); 该程序的输出结果是_。A. 2 B. 4C. 6 D. 846. 有如下程序 main() int x=3; do printf(%d,x-); while(!x); 该程序的执行结果是_。A. 321 B. 3C. 不输出任何内容 D. 陷入死循环47. 若有
16、以下定义:int t32;,能正确表示t数组元素地址的表达式是_。A. &t32 B. t3C. t1 D. *t248. 下面程序运行后的输出结果是_。 struct abc int a,b,c; main() struct abc s2=1,2,3,4,5,6; int t=-s0.a+s1.b; printf(%dn,t); A. 5 B. 6C. 7 D. 849. 有如下程序: #define n 2 #define m N+1 #define NUM 2*m+1 main() int i; for(i=1;i=NUM;i+)printf(%dn,i); 该程序中的for循环执行的次
17、数是_。A. 5 B. 6C. 7 D. 850. 索引属于_。A. 模式 B. 内模式C. 外模式 D. 概念模式二、填空题 请将每一个空的正确答案写在答题卡的【1】至【20】序号的横线上,答在试卷上不得分。1. 在运算过程中,能够使空表与非空表的运算统一的结构是 【1】 。2. 软件工程研究的内容主要包括: 【2】 技术和软件工程管理。3. 与结构化需求分析方法相对应的是 【3】 方法。4. 关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、 【4】 和自定义完整性。5. 数据模型按不同的应用层次分为三种类型,它们是 【5】 数据模型、逻辑数据模型和物理数据模型。6. 表示整数x
18、的绝对值大于5时值为真的C语言表达式是 【6】 。7. 以下程序的输出结果是 【7】 。main() unsigned short a=65536;int b; printf(%dn,b=A) ;8. 若有定义int a=10,b=9,c=8;,接着顺序执行下列语句,变量b中的值是 【8】 。 c=(a-=(b-5); c=(a%11)+(b=3);9. 以下程序运行后的输出结果是 【9】 。 main() int p=30; printf(%dn,(p/30?p/10:p%3); 10. 函数pi的功能是根据以下近似公式求值: (*)/6=1+1/(2*2)+1/(3*3)+1(n*n) 现
19、在请你在下面的函数中填空,完成求的功能。 #include “math.h double s=0.0; long i; for(i=1;i=n;i+)s=s+ 【10】 ; return(sqrt(6*s); 11. 函数pi的功能是根据以下公式近似求得的: pi*pi/6=1+1/(2*2)+1/(3*3)+1/(n*n) 请在下面的函数中填空,完成求pi的功能。 #includemath.h double pi(long n) doubles=0.0,long i; for(i=1;i=n;i+)s=s+ 【11】 ; return(sqrt(6*s); 12. 若输入字符串:abcde,
20、则以下while循环体将执行 【12】 次。 while(ch=getchar()=e)printf(*);13. 以下函数用来求出两整数之和,并通过形参将结果传回,请填空。 void func(int x,int y, 【13】 z) *z=x+y; 14. 若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是 【14】 。 int w10=23,54,10,33,47,98,72,80,61, *p=w;15. 设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部 【15】 。要求形参名为b。 main() double s1022
21、; int n; fun(s); 16. 有以下程序: int f(int n) if(n=1)return 1; else return f(n-1)+1; main() int i,j=0; for(i=1;i3;i+)j+t(i); printf(%dn,j); 程序运行后的输出结果是 【16】 。17. 以下程序的输出结果是 【17】 。 void fun() static int a=0; a+=2; printf(%d,A) ; main() int cc; for(cc=1;cc4;cc+)fun(); printf(n); 18. 实现程序可将磁盘中的一个文件复制到另一个文件中
22、,两个文件的文件名在可执行命令的命令行中(相当于copy命令),假定文件在当前目录下。请补全程序。 #includestdio.h void main(int argc,char*argv) FILE*f1,*f2; if(argc 【18】 ) printf(parameter error!n);exit(0); f1=fopen(argv1,r); f2=fopen(argv2,w); while( 【19】 )fputc(fgetc(f1),f2); fclose(f1); fclose(f2); 19. 以下程序的输出结果是 【20】 。#define MAX(x,y) (x)(y)?(x):(y)main() int a=5,b=2,c=3,d=3,t; t=MAX(a+b,c+D) *10; printf(%dn,t);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1