C语言期中考试题目及答案(共6页)_第1页
C语言期中考试题目及答案(共6页)_第2页
C语言期中考试题目及答案(共6页)_第3页
C语言期中考试题目及答案(共6页)_第4页
C语言期中考试题目及答案(共6页)_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、选择题:【1】在C语言中,用户能使用的正确标识符是 。A) 5f B) _for C) struct D) _f.5答案:B分析:标识符只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线;大小写敏感;不能使用关键字;最长32个字符。【2】以下那个是正确的C语言常量。A) 0678 B) 0101 C) 1.2E3.5 D) 123L答案:D【3】以下对C语言源程序有关常识正确的描述是 。A) main函数必须位于文件的开头B) 每个语句必须单独一行C)标识符中大小写字母没有区别D)宏定义#define部分不一定要放在程序的最开头位置答案:D【4】以下for循环的执行次数是。for

2、(x=0,y=0;(y=123)&(x4);x+)A)是无限循环 B)循环次数不定 C)执行4次 D)执行3次答案:C分析:若要判断(y=123)&(x4)假,因为y=123永远为真,所以只需要判断xb)&(n=cd)后n的值为。A)1 B)2 C)3 D)4答案:B分析:对于&运算,只要第一个操作数为假,就不判定第二个操作数。对于|运算,只要第一个操作数为真,就不判定第二个操作数。上题中m=ab为假,则n=cd没有被判定,所以n的值仍为2。【9】以下程序运行后,a和b的值分别为: #include main() int a,b; a=10%3,b=5; printf(“%d,%d”, a ,

3、 b); A)%1,%5 B)%1,%d C)%3,%5 D)1,5答案:B分析:如果两个%连在一起,则输出一个%【10】在以下运算符中,优先级最高的运算符是( )(A) = (B) (C) != (D) 答案:B【11】下列对一维数组a的正确说明语句为 。 A) int a(10); B) int n=10, an; C) int n; D) #define SIZE 10 scanf(%d, &n); int aSIZE; int an;答案:D分析:数组名后面的是数组的标志,不能用圆括号或其它符号代替;数组元素的个数必须是一个固定的值,可以是整型常量、符号常量或整型常量表达式,不能是变量

4、。【12】下面程序段的输出结果是int i;int x33=1,2,3,4,5,6,7,8,9;for(i=0;ib)&+n;printf(“%dn”,n+);答案:2分析:对于&运算,只要第一个操作数为假,就不判定第二个操作数。所以n的值为2,表达式n+的值也为2。【3】main() int x=1,y=0; y=(x-(y+x)?10:12.5y+?20:30); printf(%d,y);答案:10分析:关系运算符的优先级高于条件运算符,条件运算符的结合方向为自右向左。-x(y+x)或x-(y+x)之类结构中,右边的x应为自减后的值。如表达式x(y+x)?10:12.5y+?20:30;

5、 的值为20;表达式-x(y+x)?10:12.5y+?20:30; 的值为20。【4】main() int n=0;while (n3) break; while (1);printf(“n”); 答案:*分析:此题中的while (1)永远为真,程序结束依靠break来控制,循环体语句为 printf(“*”); i+;if (i3) break; ,当i的值分别为0,1,2,3时,程序循环四次,输出*;当i的值为4时,i4为真,退出整个程序。【6】main() int a,i; for ( a=1,i=-1; -1=i1;i+) a+;printf(“%d”,a);printf(“%d”

6、,i);答案:-1分析:此题中for的循环体语句为 a+;printf(“%d”,a);。当i=-1时,-1=i1为0(为假),则不执行 a+;printf(“%d”,a);,也就不输出a的值,所以只输出i的值为-1。【7】main() int i,x;for ( i=1,x=1;i=10) break;if (x%2=1) x+=5; continue;x-=3;printf(“x=%d,i=%dn”,x,i);答案:x=10,i=6分析:break的功能是退出整个循环,结束程序的执行;而continue的功能是退出本次循环,进入下次循环。此题可用变量跟踪法来求解:i x x%2 x+=5

7、x-=31 1 1 62 6 0 33 3 1 84 8 0 55 5 1 106 10 则if (x=10) break;条件成立,退出整个循环。【8】以下程序的运行结果是 。main() int i, v1=0, v2=1, v3=2; for(i=1; i10; i+) switch ( i% 4) case 1: v1+; case 2: v2+; break; default: v3+; printf(%d,%d,%dn ,v1,v2,v3);答案:3,6,6分析:用变量分析法如下:i i% 4 v1 v2 v31 1 1 22 2 33 3 34 0 45 1 2 46 2 57

8、3 58 0 69 1 3 6【9】执行以下程序后,输出结果是多少?main()int j,k,s; for(k=2;k6;k+,k+) s=1; for(j=k;j6;j+) s+=j; printf(%d,s);答案:10分析:此题要注意每循环一次,s的值就变为1,要得到s的值只需要看最后一次循环后s的值即可。当k=4时,j分别等于4和5,当j=4时,s+=j的值为5;当j=5时,s+=j的值为10。【10】以下程序的运行结果是 。main() int i=0;do + + i;if (i % 2!=0) printf(%d,i); while (i0 【3】i%10分析:本题定义i为输入的整数,t为各位数字之和。四、编程题:编程求“卖西瓜”问题。问题:有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?参考答案一:(其中d为天数,s为西瓜数量)main()int d,s=1020;for(d=

温馨提示

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

评论

0/150

提交评论