一、选择题:

【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(x=0,y=0;(y=123)&&(x<4);x++)

A)是无限循环 B)循环次数不定 C)执行4次 D)执行3次

答案:C

分析:若要判断(y=123)&&(x<4)假,因为y=123永远为真,所以只需要判断x<4为假即可。

【5】对for(表达式1;;表达式3)可理解为。

A)for(表达式1;0;表达式3)

B)for(表达式1;1;表达式3)

C)for(表达式1; 表达式1;表达式3)

D)for(表达式1; 表达式3;表达式3)

答案:B

【6】设有程序段

int k=10;

while(k=0) k=k-1;

则下面描述中正确的是。

A)while循环执行10次 B)循环是无限循环

C)循环体语句一次也不执行 D)循环体语句执行一次

答案:C

分析:因为k=0为假,所以程序不执行其后的语句。

【7】C语言中while和do-while循环的主要区别是。

A) do-while的循环体至少无条件执行一次

B) while的循环控制条件比do-while的循环控制条件严格

C) do-while允许从外部转到循环体内

D) do-while的循环体不能是复合语句

答案:A

【8】设有:int

a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为。

A)1

B)2 C)3 D)4

答案:B

分析:对于&&运算,只要第一个操作数为假,就不判定第二个操作数。对于||运算,只要第一个操作数为真,就不判定第二个操作数。上题中m=a>b为假,则n=c>d没有被判定,所以n的值仍为2。

【9】以下程序运行后,a和b的值分别为:

#include

main()

{int a,b;

a=10%3,b=5;

printf(“%%%d,%%%%d”, a , 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, a[n];

C) int

n; D) #define SIZE 10

scanf("%d",

&n); int

a[SIZE];

int a[n];

答案:D

分析:数组名后面的[]是数组的标志,不能用圆括号或其它符号代替;数组元素的个数必须是一个固定的值,可以是整型常量、符号常量或整型常量表达式,不能是变量。

【12】下面程序段的输出结果是

int i;

int x[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0;i<3;i++) printf("%d",x[i][2-i]);

A)1 5 9 B)1

4 7 C)3

5 7 D)

3 6 9

答案:C

分析:

数组x[3][3]的元素分别为:x[0][0] x[0][1] x[0][2]

x[1][0]

x[1][1] x[1][2]

x[2][0]

x[2][1] x[2][2]

对数组初始化后对应的值为: 1 2 3

4 5 6

7 8 9

当i=0时,x[i][2-i]= x[0][2]=3

当i=1时,x[i][2-i]= x[1][1]=5

当i=2时,x[i][2-i]= x[2][0]=7

当i=3时,条件不成立,程序退出。

二、填空题:

【1】main()

{ int a=5;float x=5.3,y=6.6;

printf("%.2f",x+a%3*(int)(x+y)%2/4);}

答案:5.30

分析:算术运算符结合方向为自左向右,并注意格式控制。

【2】main()

{ int a=1,b=2,m=2,n=2;

(m=a>b)&&++n;

printf(“%d\n”,n++);}

答案:2

分析:对于&&运算,只要第一个操作数为假,就不判定第二个操作数。所以n的值为2,表达式n++的值也为2。

【3】main()

{ int x=1,y=0;

y=(x-->(y+x)?10:12.5>y++?20:30);

printf("%d",y);}

答案:10

分析:关系运算符的优先级高于条件运算符,条件运算符的结合方向为自右向左。--x>(y+x)或x-->(y+x)之类结构中,右边的x应为自减后的值。如表达式x>(y+x)?10:12.5>y++?20:30;

的值为20;表达式--x>(y+x)?10:12.5>y++?20:30;

的值为20。

【4】main()

{ int n=0;

while (n<=2)

{ n++;

printf(“%d”,n);

}

}

答案:123

分析:{ n++;

printf(“%d”,n);}为while语句的循环体部分,当n=0时条件成立,执行n++后n的值变为1,并输出1;当n=1时条件成立,执行n++后n的值变为2,并输出2;当n=2时条件成立,执行n++后n的值变为3,并输出3;n=3时条件不成立,程序退出。

【5】main()

{ int i=0;

do

{ printf(“*”);

i++;

if (i>3) break;

} while (1);

printf(“\n”);

}

答案:****

分析:此题中的while (1)永远为真,程序结束依靠break来控制,循环体语句为{ printf(“*”); i++;if

(i>3) break;

},当i的值分别为0,1,2,3时,程序循环四次,输出****;当i的值为4时,i>4为真,退出整个程序。

【6】main()

{ int a,i;

for ( a=1,i=-1;

-1<=i<1;i++)

{ a++;printf(“%d”,a);}

printf(“%d”,i);

}

答案:-1

分析:此题中for的循环体语句为{

a++;printf(“%d”,a);}。当i=-1时,-1<=i<1为0(为假),则不执行{

a++;printf(“%d”,a);},也就不输出a的值,所以只输出i的值为-1。

【7】main()

{ int i,x;

for ( i=1,x=1;i<=50;i++)

{ if (x>=10) break;

if (x%2==1)

{ x+=5; continue;}

x-=3;

}

printf(“x=%d,i=%d\n”,x,i);

}

答案:x=10,i=6

分析:break的功能是退出整个循环,结束程序的执行;而continue的功能是退出本次循环,进入下次循环。此题可用变量跟踪法来求解:i x x%2 x+=5 x-=3

1 1 1 6

2 6 0 3

3 3 1 8

4 8 0 5

5 5 1 10

6 10 则if (x>=10)

break;条件成立,退出整个循环。

【8】以下程序的运行结果是。

main()

{ int i, v1=0, v2=1, v3=2;

for(i=1;

i<10; i++)

{ switch

( i% 4)

{ case 1: v1++;

case 2: v2++; break;

default: v3++;

}

}

printf("%d,%d,%d\n ",v1,v2,v3);

}

答案:3,6,6

分析:用变量分析法如下:

i i%

4 v1 v2 v3

1 1 1 2

2 2 3

3 3 3

4 0 4

5 1 2 4

6 2 5

7 3 5

8 0 6

9 1 3 6

【9】执行以下程序后,输出结果是多少?

main()

{int j,k,s;

for(k=2;k<6;k++,k++)

{s=1;

for(j=k;j<6;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 (i<=15)

答案:1,3,5,7,9,11,13,15

分析:用变量跟踪法进行分析:

i + + i

i

%

2!=0 是否执行printf("%d,",i)

0 1 真 是

1 2 假 否

2 3 真 是

3 4 假 否

4 5 真 是

5 6 假 否

6 7 真 是

7 8 假 否

8 9 真 是

9 10 假 否

10 11 真 是

11 12 假 否

12 13 真 是

13 14 假 否

14 15 真 是

15 16 条件不成立,退出程序。

三、程序填空

输入一个正整数,求该数各位之和,如输入3256, 求得3+2+5+6=16。

main()

{ int i,t= 【1】

;

scanf(“%d”,&i);

while(

【2】

){t+= 【3】 ;

i/=10;}

printf(“%d\n”,t);

}

答案:【1】0 【2】i>0 【3】i%10

分析:本题定义i为输入的整数,t为各位数字之和。

四、编程题:

编程求“卖西瓜”问题。

问题:有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?

参考答案一:(其中d为天数,s为西瓜数量)

main()

{int d,s=1020;

for(d=0;s>=0;d++)

s=s/2-2;

printf("%d",d);

}

参考答案二:(其中day为天数,sum为西瓜数量)

main()

{int day,sum;

day=0,sum=0;

while(sum<=1020)

{sum=sum*2+4;day++;}

printf("%d",day);

}

大一期中c语言答案,C语言期中考试题目及答案相关推荐

  1. 数值分析MOOC期中考试题目及答案(前十题)

    数值分析MOOC期中考试题目及答案(前十题) 答案均为自己做之后记录的,如有错误,可留言反馈,因此产生的影响,后果自负哈! 解:答案选C 解:好像有点问题..先留着~之后回来再看 解:答案选C 解:答 ...

  2. 数值分析MOOC期中考试题目及答案(后十题)

    数值分析MOOC期中考试题目及答案(后十题) 答案均为自己做之后记录的,如有错误,可留言反馈,因此产生的影响,后果自负哈! 解:答案选D 解:答案选A 解:答案选D 解:答案选A.根据牛顿迭代法的一般 ...

  3. Python二级考试题目及答案解析(含刷题软件)

    刷题软件公众h:露露IT [导语] Python是一种面向对象.解释型的高级程序设计语言,广泛应用于数据分析.人工智能.Web开发.游戏开发等领域.Python二级考试是计算机等级考试中的一项重要考试 ...

  4. 危化品从业人员考试题目及答案

    危险化学品是指化学品中易燃.易爆.有毒.有害及有腐蚀等特性,会对人员.设施.环境造成伤害或损坏的物品. 那么作为一名危险化学品从业人员是需要去参加培训,通过考试之后,才可以上岗从业的,在备考过程中,小 ...

  5. 计算机高级职称考试笔试题,计算机高级职称考试题目及答案

    计算机高级职称考试题目及答案 运行下的命令: 1.写字板wordpad.exe 2.剪切板clipbrd.exe 3.控制台mmc 4.组策略gpedit.msc 5.快捷键: 6.使用宏命令,在该文 ...

  6. 计算机办公软件试题答案,2017年office办公软件考试题目及答案

    2017年office办公软件考试题目及答案 一.选择题 1.CD-ROM属于______. A.大容量可读可写外部存储器 B.大容量只读外部存储器 C.可直接与CPU交换数据的存储器 D.只读内存储 ...

  7. 乐学python慕课答案_中国大学乐学软件工程答案网课MOOC考试期末慕课答案

    中国大学乐学软件工程答案网课MOOC考试期末慕课答案 更多相关问题 在圆杆上套螺纹的工具为板牙. 保持香港.澳门长期繁荣稳定,必须全面准确贯彻"一国两制"."港人治港&q ...

  8. 2022二级建造师《工程法规》考试题目与答案

    题库来源:优题宝公众号 2022二级建造师<工程法规>考试题目与答案,根据最新二级建造师大纲与历年真题汇总编写,包含二级建造师常考重点题型与知识点,有助于考生复习备考二级建造师,取得好成绩 ...

  9. 2022起重机司机(限桥式起重机)考试题目及答案

    题库来源:安全生产模拟考试一点通公众号小程序 2022年起重机司机(限桥式起重机)模拟考试题库是起重机司机(限桥式起重机)全部考试题库新版习题库!2022起重机司机(限桥式起重机)考试题目及答案根据起 ...

  10. 2017计算机专业职称,2017年计算机职称考试题目及答案

    2017年计算机职称考试题目及答案 一.选择题 D(1)十进制数215用二进制数表示是 A)1100001 B)11011101 C)0011001 D)11010111 C(2)计算机的特点是处理速 ...

最新文章

  1. hadoop端口号列表
  2. MyBatis第二天
  3. flutter - URL出现在网站名称的位置
  4. 一个很好地List实现源码
  5. jvm破坏双亲委派_破坏JVM
  6. Flash Builder非法关闭导致无法启动
  7. 收藏 | Transformer 论文详细解读
  8. html表单提交不判断,请问jquery有方法可以判断一个表单提交之后结果是成功或不成功吗?...
  9. sql server序列_SQL Server中的Microsoft时间序列
  10. 中国农业种植施肥机械行业市场供需与战略研究报告
  11. ios开发--企业帐号发布
  12. 程序阻碍OD调试的方式1
  13. 本特利探头330104-00-02-10-02-00
  14. WPS表格如何快速添加斜线表头
  15. COJ 3012 LZJ的问题 (有向图判环)
  16. MycoLightTM 比率细菌膜电位试剂盒程序
  17. 时钟系统和系统功耗的关系
  18. Java Spring中同时访问多种不同数据库
  19. 怎么关闭win10自动更新?我们可以这么做!
  20. 某东MAOTAI秒杀软件的优化思路

热门文章

  1. java中Keytool的使用总结
  2. BIAS指标的原理和计算方法
  3. 服务器中Redis清除缓存
  4. 2020-10-13 一阶范数;二阶范数
  5. 如何实现Ariba PunchOut ,如何的实现通过CXML交互?
  6. 安静的读书,安静的体会生活
  7. HTML 前端学习(1)—— 初识HTML
  8. SQL Server 2008从基础开始学习的历程(1)------创建表与查询
  9. java异或_java中异或是怎样算的
  10. 微软小娜 服务器,Win10微软小娜无法连接网络怎么办?微软小娜无法连接网络问题解决方法...