计算机国二C语言考试试题第一套

上传人:文*** 文档编号:91330796 上传时间:2022-05-16 格式:DOC 页数:9 大小:35.50KB
收藏 版权申诉 举报 下载
计算机国二C语言考试试题第一套_第1页
第1页 / 共9页
计算机国二C语言考试试题第一套_第2页
第2页 / 共9页
计算机国二C语言考试试题第一套_第3页
第3页 / 共9页
资源描述:

《计算机国二C语言考试试题第一套》由会员分享,可在线阅读,更多相关《计算机国二C语言考试试题第一套(9页珍藏版)》请在装配图网上搜索。

1、第一套1.串的长度是( ) A.串中不同字符的个数 B.串中不同字母的个数 C.串中所含字符的个数且字符个数大于零 D.串中所含字符的个数分析:串的长度指的是串中的字符的个数,且其字符个数可以为零。2.以下不属于对象的基本特点的是( ) A.分类性 B.多态性 C.继承性 D.封装性分析:对象有如下一些基本特点,即标识惟一性、分类性、多态性、封装性和模块独立性。3.下面不属于软件设计原则的是( ) A.抽象 B.模块化 C.自底向上 D.信息隐蔽分析:软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念,它们是抽象、模块化、信息隐蔽和数据独立性

2、。自底向上是集成测试中增量测试的一种。4.下列SQL语句中,用于修改表结构的是( ) A.ALTER B.CREATE C.UPDATE D.INSERT分析:SQL语句中凡创建都用CREATE,删除都用DROP,改用ALTER,再跟类型和名字,附加子名。5.关系模型允许定义3类数据约束,下列不属于数据约束的是( ) A.实体完整性约束 B.参照完整性约束 C.域完整性约束 D.用户自定义的完整性约束分析:关系模型允许定义3类数据约束,它们是实体完整性约束、参照完整性约束及用户自定义的完整性约束。其中前两种完整性约束由关系数据库系统支持,对于用户自定义的完整性约束,则由关系数据库系统提供完整性

3、约束语言,用户利用该语言给出约束条件,运行时由系统自动检查。6.非空循环单链表head的尾结点(由p所指向),满足( ) A.p-next=NULL B.p=NULL C.p-next=head D.p=head分析:循环链表就是将链表的最后一个结点指向链表头结点(或第一个结点),即p-next=head。7.对建立好程序设计风格,下面描述正确的是( ) A.程序应简单、清晰、可读性好 B.符号名的命名只要符合语法 C.充分考虑程序的执行效率 D.程序的注释可有可无分析:程序设计应该简单易懂,语句构造应该简单直接,不应该为提高效率而把语句复杂化。8.在软件生产过程中,需求信息的给出是( ) A

4、.程序员 B.项目管理者 C.软件分析设计人员 D.软件用户分析:软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。9.NULL是指( ) A.0 B.空格 C.未知的值或无任何值 D.空字符串分析:此题属于记忆性的题目,NULL是指未知的值或无任何值。10.下列说法中,不属于数据模型所描述的内容的是( ) A.数据结构 B.数据操作 C.数据查询 D.数据约束分析:数据模型所描述的内容3有个部分,它们是数据结构、数据操作和数据约束。其中,数据模型中的数据结构主要描述数据的类型、内容、性质,以及数据库的联系等;数据操作主要描述在相应数据结构上的操作类型与操作方式。11.在

5、C语言中,退格符是( ) A.n B.t C.f D.b分析:C语言的转义字符见下表所示。 转 义 字 符 转义字符的意义 n 回车换行 t 横向跳到下一制表位置 v 竖向跳格 b 退格 r 回车 f 换页 反斜线符“” 单引号符 a 鸣铃 ddd 13位八进制数所代表的字符 xhh 12位十六进制数所代表的字符12.若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后 a=25 &b-=2 &c? printf(*a=%d,b=%d,c=%dn,a,b, c):printf(#a=%d,b=%d,c=%dn,a,b,c);程序输出结果是( ) A.* *

6、*a=25,b=13,c=19 B.* * *a=26,b=14,c=19 C.# a=25,b=13,c=19 D.# a=26,b=14,c=19分析:此题综合考查多种运算符的使用。首先计算表达式a=25 &b-=2 &c的值,很容易看 出 b-=2的值为假,因此表达式为假;根据三目运算的特点,由于前面的表达式为假,应执行printf(#a=%d,b=%d,c=%dn,a,b,c),应注意a的值依然为25,b的值经过b-运算后改变为13,而c的值仍为19。13.若运行以下程序时,从键盘输入Adescriptor(表示回车),则下面程序的运行结果是( ) #include main() ch

7、ar c; int v0=1,v1=0,v2=0; do switch(c=getchar() case a:caseA: casee:caseE: casei:caseI: caseo:caseO: caseu:caseU:v1+=1; default:v0+=1;v2+=1; while(c!=n); printf(v0=%d,v1=%d,v2=%dn,v0,v1,v2); A.v0=7,v1=4,v2=7 B.v0=8,v1=4,v2=8 C.v0=11,v1=4,v2=11 D.v0=13,v1=4,v2=12分析:本题考查switch语句的掌握。必须掌握以下内容:首先应该明白swit

8、ch语句的语法格式:switch语句的语法格式为: switch(表达式) case常量表达式1:语句组1; case常量表达式2:语句组2; case常量表达式n:语句组n; default:语句组n+1;另外,注意以下几点关于switch语句的重点:系统在执行时计算开关表达式的值; 根据所得的值在各个case标号表达式中寻找匹配,直到发现与表达式匹配的标号(本中 匹配的是case B:); 找到匹配后执行后面相应的语句表,顺序往下执行; 如果无相匹配的标号,若存在default标号,则执行该语句标号后面的语句表n+1;当不存在default标号时,不执行switch中的任何一个语句表。一般

9、而言,在多分支结构中总会出现“意外”的情况,这时均可归入default:程序段,作统一的处理。default标号是可选性的,不必每次都有,视需要而定。switch语句中还可以包含switch语句,形成switch的嵌套14.执行下面的程序段后,变量k中的值为( ) int k=3,s2; s0=k;k=s1*10; A.不定值 B.33 C.30 D.10分析:如果定义数组时没有进行初始化,则其各个成员的值不确定,所以k=s1*10的值也不定。15.有如下程序段 int a=14,b=15,x; char c=A; x=(a&b)&(cB); 执行该程序段后,x的值为( ) A.ture B.

10、false C.0 D.1分析: 在C语言中,逻辑运算符中一共有4个,它们分别是!(逻辑非)、(逻辑或)、&(逻辑与)、(异或)。在位运算里面还有&(位与)、(位或)的运算。本题考查逻辑与运算符的用法,在表达式x=(a&b)&(cB);中,先判断a&b条件,逻辑与条件的两边都要保证为1,即a和b都成立,当然cB是成立的,显然,该表达式的值为1。16.以下函数返回a所指数组中最大值所在的下标值 fun(int *a,int n) int i,j=0,p; p=j; for(i=j;iap)_ return(p); 在下划线处应填入的内容是( ) A.i=p B.ap=ai C.p=j D.p=I

11、分析:该题目所要求的是最大数的位置(下标),而不是最大数的数值!因此,在进行逐个比较的过程中,需要记录下的是最大数的下标i,根据给出的程序可以知道,该下标记录存在变量p中,所以,如果aiap这一关系成立,应该把i的值赋给p,这样才满足题目的要求。17.有如下程序 main() char s =ABCD,*p; for(p=s+1;ps+4;p+)printf(%sn,p); 该程序的输出结果是( ) A.ABCD B.A BCD B CD C D D C.B D.BCD C CD D D分析:本题考查指向字符串的指针的运算方法。指针变量p首先指向字符串中的第一个字符A,执行p=s+1后,p指向

12、字符串中的第二个字符B,然后输出值“BCD”并换行。依次执行循环语句。18.以下正确的说法是( ) A.定义函数时,形参的类型说明可以放在函数体内 B.return后边的值不能为表达式 C.如果函数值的类型与返回值类型不一致,以函数值类型为准 D.如果形参与实参类型不一致,以实参类型为准分析:本题中的二维数组的每个元素就是一个由三个元素构成的一维数组,根据条件for(k=0;k成员名,(*指针变量名).成员名。21.在下述程序中,判断ij共执行的次数是( ) main() int i=0,j=10,k=2,s=0; for(;) i+=k; if(ij) printf(%d,s); break

13、; s+=I; A.4 B.7 C.5 D.6分析:本题涉及到break语句,重在循环次数的判定。本题的循环由于无出口,只能借助break语句终止。鉴于题目要求说明判断ij的执行次数,只需考查经过i+=k运算如何累计i的值,i值分别是i=2,4,6,8,10,12时,判断ij为真,程序输出s的值并结束,共循环6次。22.以下程序的输出是( ) struct st int x;int *y; *p; int dt4=10,20,30,40; struct st aa4=50,&dt0,60,&dt0,60,&dt0,60,&dt0; main() p=aa printf(%dn,+(p-x);

14、A.10 B.11 C.51 D.60分析:本题中,数组名保存了数组的首地址,也就是数组中第一个元素的地址,执行p=aa;后,p指向aa0,p-x相当于aa0.x,也就是50,经过自增运算后,显示结果为51。23.下列数据中,不合法的C语言实型数据是( ) A.0.123 B.123e3 C.2.1e3.5 D.789.0分析:在C语言中,实数有两种形式表示,即十进制数形式和指数形式,在指数形式中,e3,2.1e3.5,.e3,e等都是不合法的指数形式。再如123e3或123E3都代表123乘以10的3次方。注意,字母e的前面必须有数字,且e的后面必须是整数。24.设变量a是int型f是flo

15、at型,i是double型,则表达式10+a+i*f值的数据类型为( ) A.int B.float C.double D.不确定分析:根据混合运算规则,如果有一个数据是float型或double型,则其他数据类型先转化为double型,运算的结果最终也是double型。25.设以下变量均为int类型,表达式的值不为7的是( ) A.(x=y=6,x+y,x+1) B.(x=y=6,x+y,y+1) C.(x=6,x+1,y=6,x+y) D.(y=6,y+1,x=y,x+1)分析: 本题是考查逗号表达式的用法。C语言中逗号“,”也是一种运算符,称为逗号运算符。其功能是把两个表达式连接起来组成

16、一个表达式,称为逗号表达式。其一般形式为:表达式1,表达式2,其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。逗号表达式的一般形式可扩展为:表达式1,表达式2,表达式3,表达式n,它的值为表达式n的值。26.变量a是int类型,执行语句:a=A+1.6;,则正确叙述是( ) A.a的值是字符C B.a的值是浮点型 C.不允许字符型和浮点型相加 D.a的值是字符A的ASCII值加上1分析: 字符A要转换成相应的ASCII码值,由于运算结果要赋值给int型变量,所以对1.6进行取整运算,最后a的值应是66。27.有如下程序main() int x=23; do print

17、f(%d,x-); while(!x);该程序的执行结果是( ) A.321 B.23 C.不输出任何内容 D.陷入死循环分析: 解答本题,当然先要清楚do-while语句的执行过程:先执行一次指定的循环体语句,本题中执行x-后判断表达式,表达式的值为!X为假,程序结束循环。28.若变量c为char类型,能正确判断出c为小写字母的表达式是( ) A.a=c=a)(c=z) C.(a=c) D.(c=a)&(c=z)分析: 字符型数据在计算机内是以ASCII存储的,英文大写字母和小写字母在ASCII码表中都是连续的,大写字母A到Z是从65到90,小写字母a到z是97到122。所以只要变量c大于a

18、并且小于z就能保证其为小写字母。29.下面程序段的运行结果是( )char str=ABC,*p=str;printf(%dn,*(p+3); A.67 B.0 C.字符C的地址 D.字符C分析: 考查指向字符串的指针变量。在该题中,指针变量p指向的应该是该字符串中的首地址,p+3指向的是字符串结束标志0的地址,因而*(p+3)的值为0。30.有以下语句,则对a数组元素的引用不正确的是(0i9)( )int a10=0,1,2,3,4,5,6,7,8,9,*p=a; A.ap-a B.*(&ai) C.pi D.*(*(a+i)分析: 本题考查数组指针的应用。选项D第一层括号中为数组a中第i项

19、元素的值,外面再加指针运算符没有意义。31.有以下程序fun(int x,int y,int z) z=x*y;main() int a=4,b=2,c=6; fun(a,b,c); printf(%d,c);程序运行后的输出结果是( ) A.16 B.6 C.8 D.12分析:本题考查的是函数形参与实参的传递规则,当形参与实参都是简单的数据类型时,形参值的改变不能影响实参值的改变,即本题中c的值未改变,仍然是6。32.以下叙述中不正确的是( ) A.预处理命令都必须以#号开始 B.在程序中凡是以#号开始的语句行都是预处理命令行 C.宏替换不占用运行时间,只占编译时间 D.在以下定义是正确的:

20、#define PI 3.1415926;分析: 带参数宏定义如下:#define宏名(参数)字符串。本题中,宏定义的作用是指定用标识符PI来代替“3.1415926”这个字符串,但宏定义不是C语句,不必在行末加分号。33.下面程序段的运行结果是( )char *p=abcdefgh;p+=3;printf(%dn,strlen(strcpy(P,ABCD); A.8 B.12 C.4 D.7分析: 本题考查两个知识点:strlen函数的功能是求字符串的长度,并返回字符个数,若不计最后的0,strcpy函数的功能是把后面的字符串复制到前面字符串所指向的空间。34.已知函数调用形式:fread(

21、buf,size,count,fp),参数buf含义是( ) A.一个整型变量,代表要读入的数据项总数 B.一个文件指针,指向要读的文件 C.一个指针,指向要读入数据的存放地址 D.一个存储区,存放要读的数据项分析: 这是一道考查fread函数的题。Buf是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址(以上指的是起始地址)。35.C语言规定,在一个源程序中,main函数的位置( ) A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后分析: 一个C程序总是从main函数开始执行的,不论main函数在整个过程中的位置如何。友情提示:部分文档来自网络整理,供您参考!文档可复制、编制,期待您的好评与关注!9 / 9

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!