二级C模拟题7详解

上传人:zw****58 文档编号:45369753 上传时间:2018-06-16 格式:DOC 页数:9 大小:107.50KB
返回 下载 相关 举报
二级C模拟题7详解_第1页
第1页 / 共9页
二级C模拟题7详解_第2页
第2页 / 共9页
二级C模拟题7详解_第3页
第3页 / 共9页
二级C模拟题7详解_第4页
第4页 / 共9页
二级C模拟题7详解_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《二级C模拟题7详解》由会员分享,可在线阅读,更多相关《二级C模拟题7详解(9页珍藏版)》请在金锄头文库上搜索。

1、二级(C 语言)模拟题1一、选择题 1 以下叙述不正确的是( ) 。 A)C 语言的执行总是从main 函数开始B)一个 C 源程序必须包含一个 main 函数 C)C 语言程序的基本组成单位是函数D)在编译 C 程序源程序时,可发现注释中的拼写错误 答案:D,错误,编译器不会查注释的问题。 2以下( )是错误的整型常量。 A)-0xcdfB)018C)0xeD)011 答案:B,八进制合法数为 0 到 7,B 错,AC 是十六进制,D 是八进制数 3若有定义:int a,b;double x,则以下不符合 C 语言语法的表达式是( ) 。 A)x%(-3)B)a+=-2C)a=b=2D)x=

2、a+b 答案:A,%表示求余数,操作数不能是浮点数,A 错。 4.若有定义:int i,j;则表达式(i=2,j=5,i+,i+j+)的值是( ) 。 A)7B)8C)9D)10 答案:B,i+后 i 变成 3,i+j+就为 3+5=8 5已有如下定义和输入语句int a;char c1,c2; scanf(“%d%c%c”, 若要求 a、c1、c2 的值分别为 10、A 和 B,正确的数据输入是( ) 。 A)10ABB)10 A BC)10A BD)10 AB 答案:A,根据输入格式,不能有空格,选 A。6.若希望当 a 的值为奇数时,表达式的值为“真”,a 的值为偶数时,表达式的值为“假

3、” 。则不能满足要求的表达式是( ) 。A)a%2=1B)!(a%2=0)C)!(a%2)D)a%2 答案:C,特殊值带入,取 a 为 2,2%2 为 0,取非,为 1,跟题目要求相反,所以选 C。 7.若有定义:int a=2,b=3;float x=3.5,y=2.5;则表达式 float(a+b)/2+(int)x%(int)y 的值为 ( ). A)3.5B)3.0C)2.5D)2.0 答案:2.5+3%2=2.5+1=3.5,选 A。 8.以下程序的运行结果是( ) 。void main() int n=e;swithc(n-)default:printf(”error”);case

4、 a:case b: printf(”good”);break;case c: printf(”pass”);case d: printf(”warn”); A)errorB)goodC)error goodD)warn 答案:C,直接运行可得答案,n其实就是 e,进入 default,因为没有 break,要顺延。 9.以下程序的运行结果是( ) 。void main() int sum=0,item=0;while(item #define SQR(x) (x*x) void main() int a,b=3;a=SQR(b+2);printf(”n%d”,a); A)11B)25C)不定

5、值D)产生错误 答案答案 A A,这道题要注意展开不合并原则,求,这道题要注意展开不合并原则,求 SQR(b+2)SQR(b+2),直接带入,直接带入 SQRSQR b+2*b*2b+2*b*2,注意不能用括号括起来,注意不能用括号括起来, 这就是展开不合并原则。这就是展开不合并原则。 可直接运行,但是要注意把全角的双引号改成半角。注意到黏贴可能出现的问题,主要是因为全角的双引号,要改成半角,输出15有说明语句:double *p,a;能通过 scanf 语句正确给输入项读入数据的程序段是( ) 。 A)*p=scanf(”%lf”,p); B)*p=scanf(”%lf”,*p); C)p=

6、scanf(”%lf”,*p);D)p=scanf(”%lf”,p); 答案 D,注意指针本身就是地址,如果加了*,就变成了所指内容,BC 都错,A 错在初始化指针格式错误, 应该是 D 的格式。 16.下面程序的输出结果是( )#include void main()二级(C 语言)模拟题4int i;char *s=”abc”;for(i=0;i union Utypeint i;float f; u2; void main() printf(”sizeof(u):%dn”,sizeof(u); A)2B)4C)6D) 8 答案 D,u 是联合体数组,注意联合体本身取决于最长的成员,就是

7、float,4 字节,加上数组两个元素, 共占 8 字节。 18. 若有如下定义,函数 fun 的功能是( )。其中 head 指向链表首结点,整个链表结构如下图:head struct node int data;struct node *next; ; int fun(struct node *head) int n=0; struct node *t=head;while(t!=NULL) n+;t=t-next; return n; A)删除链表 head 中的所有结点B)计算链表 head 中结点的个数 C)插入一个元素到链表 head 中D)创建一个链表 head 答案 B,直接看

8、核心代码:while(t!=NULL) n+;t=t-next; 有个 n+,就是在统计节点个数。 19下面程序的输出结果为( ) 。#include void main() enum Weekdaysun=7,mon=1,tue,wed,thu,fri,sat;enum Weekday day=sat;printf(”%dn”,day); A)7B)6C)5D)4datadatadata NULL二级(C 语言)模拟题5答案 B,可以直接运行,显示 6,也可以直接看代码,mon 赋常量 1,后面依次要加 1,到了 sat 就是 6。 20.以下程序的可执行文件名为 cmdline.exe。#

9、include #include void main(int argc,char *argv) if(argc!=2) printf(”You forgot to type your name or you typed more parametersn”);exit(1);printf(”Hello %sn”,argv1); 在 DOS 命令行输入:cmdline harry,则输出结果是( ) 。A) You forgot to type your name or you typed more parameters B) Hello harry C) Hello cmdline D) hel

10、lo 答案:B,注意到输入了两个字符串,那么 argc 就是 2,其中 argv1表示第二个字符串,也就是 harry,所以最后输出为 Hello harry 二、改错题(共 2 小题,每题 10 分) 1程序 cmody071.c,其功能是从键盘输入三角形的三边长,求其面积,若三个边长不能构成三角形,则 提示。 如 输入:6 9 11 输出: 26.98#include #include void main() float a3,s,area;int i;printf(”Please input 3 numbers:n”);for(i=0;ia2|a1+a2a0|a0+a2a1) /*/s=

11、(a0+a1+a2)/2;area=sqrt(s*(s-a0)*(s-a1)*(s-a2)lprintf(”area is %.2fn”,area);else printf(”error.n”); getch(); 答案: scanf(“%f”, if(a0+a1a2表示输入三角形三个边长,第二处,应该是且的关系,用clrscr();for(large=0;largelarge:%d,middle:%d,small%dn”,n,large,middle,small); return n; void main() int num;num=fun();printf(”nThere are %d s

12、olutions.n”,num); getch(); 答案:int fun()if(large+middle+small=100),第一处,明显有返回值,返回类型就错了, 应该是 int,第二处,相等应该用=,而不是赋值号。 三、填空题(共 3 小题,每题 8 分)1补充程序 Ccon071.c,对函数,分别计算和的值。 226f xxx8f xsinfx如 x=2.0,则输出:f(x+8)=86.000 f(sinx)=5.008#include /*/ /*/ double fun(double x) /*/ /*/ void main() double x,y1,y2;clrscr();

13、printf(“Please input x:”);scanf(“%lf”,y1=fun(x+8);y2=fun(/*/ /*/);printf(“nf(x+8)=%.3lf”,y1);printf(“nf(sinx)=%.3lf”,y2); getch(); 答案:#include ,return (x*x-2*x+6);sin(x),第一处,填 math 头文件预编译头,注意 到后面有 sin 函数,第二处按题目给的二次函数填写,根据题目要求,第三处填 sin(x)。2.补充程序 Ccon072.c,计算,其中 m、n 为整数且 mn0。! !()!mpn mn#include doubl

14、e fun(unsigned m,unsigned n) unsigned i;double p=1.0;for(i=1;i int findmax(int *array,int size); void main() int a=33,91,23,45,56,-12,32,12,5,90;clrscr();printf(“The max is %dn”,/*/ /*/); getch(); int findmax(int *array,int size) int i,/*/ /*/;for(i=1,imax)max=arrayi;return max; 答案:find max(a,sizeof

15、(a)/sizeof(int) max=array0,第一处,填入 findmax 函数,其中第一 个参数肯定是数组名,第二个参数是数组长度,可以用 sizeof(a)/sizeof(int)表示,第二处,找最大值, 首先默认第一个元素是最大值,所以要填:max=array0 四、编程题(共 2 小题,每题 8 分) 1打开程序 cprog071.c,完成其中的 f()函数,使其对输入的一个月工资数额,求应交税款,设应交税 款的计算公式如下: 0160016005%16002100160010%2521003100160015% 1253100xxxf xxxxx 例如:输入:1825 输出:f(1825)=11.25 输入:2700 输出:f(2700)=85.00 输入:5655 输出:f(5655)=483.25 #include #include double f(float x) /*/*/ void main() float x;double y;printf (”Please input x

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号