国家二级C语言上机试题Word文件下载.docx

上传人:b****6 文档编号:17294274 上传时间:2022-12-01 格式:DOCX 页数:53 大小:31.73KB
下载 相关 举报
国家二级C语言上机试题Word文件下载.docx_第1页
第1页 / 共53页
国家二级C语言上机试题Word文件下载.docx_第2页
第2页 / 共53页
国家二级C语言上机试题Word文件下载.docx_第3页
第3页 / 共53页
国家二级C语言上机试题Word文件下载.docx_第4页
第4页 / 共53页
国家二级C语言上机试题Word文件下载.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

国家二级C语言上机试题Word文件下载.docx

《国家二级C语言上机试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《国家二级C语言上机试题Word文件下载.docx(53页珍藏版)》请在冰豆网上搜索。

国家二级C语言上机试题Word文件下载.docx

(4)运行结束后,可以回到“文件”菜单,点击“关闭工作区“选项,

关闭当前文件窗口。

若要编辑新的源程序,可以再次打开“文件”菜单,重新建立文件,步

骤如上所述。

【一般示例】

【例1】编程实现在屏幕上显示如下三行文字

Hello,world!

WolcometotheClanguageworld!

Everyonehasbeenwaitingfor.

程序example.c如下:

main()

{printf("

Hello,World!

\n"

);

printf("

Everyonehasbeenwaitingfor.\n"

}

【例2】输入并运行程序,写出运行结果。

{

inta,b,sum;

a=123;

b=456;

sum=a+b;

printf(“sumis%d\n”,sum);

运行方法同上,最后结果为:

sumis579。

【例3】

输入并运行程序,写出运行结果。

inta,b,c;

scanf(“%d,%d”,&

a,&

b);

c=max(a,b);

printf(“max=%d”,c);

intmax(intx,inty)

intz;

if(x>

y)z=x;

elsez=y;

return(z);

这个程序的功能是对于任意输入的两个整数,输出较大的那个数。

所以程序运行之后,光标将停留在用户屏幕上,等待用户输入两个整数,比如输入“3,5”,回车,在用户屏幕上就会输出“max=5”。

【作业】

1.参照例题,编写一个C程序,输出以下信息:

****************************

Hello,World!

#include<

stdio.h>

Hello,world!

****************************\n 

Hello,World!

\n****************************\n"

2.编写一个C程序,输入a、b、c三个数,输出其中最大者。

试想,如果求四个数中的最大者,则程序该如何编写。

inta,b,c,d;

scanf("

%e,%e,%e"

&

b,&

c);

d=max(a,b);

d=max(b,c);

max=%e"

d);

intmax(intx,inty,intz)

intm;

if(x>

y,x>

z)m=x;

elsem=y;

return(m);

实验二C语言的基础知识

1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。

2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。

【一般示例】

【例1】输入并运行下程序,写出运行结果。

mian()

charc1,c2;

c1=97;

c2=98;

printf(“%c%c”,c1,c2);

在此基础上

1)加一个printf语句,并运行之。

printf(“%d,%d”,c1,c2);

2)再将第二行改为:

intc1,c2;

再使之运行。

3)再将第三行改为:

c1=300;

c2=400;

再使之运行,分析其运行结果。

4)再将第3行改为:

c1=a;

c2=b;

再使之运行,(你会发现程序有错误,a,b都没有加单引号,就应该是变量)

5)再将第3行改为:

c1=“a”;

c2=“b”;

再使之运行,(你会发现程序有错误)

在该程序中,说明了字符型数据在特定情况下可作为整型数据处理,整型数据有时也可以作为字符型数据处理。

【例2】分析下程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。

{

charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;

printf(“a%cb%c\tabc\n”,c1,c2,c3);

printf(“\t\b%c%c”,c4,c5);

在该程序中,主要考查对转义字符的掌握情况。

分析下程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。

inti,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf(“%d,%d,%d,%d”,i,j,m,n);

分别作以下改动之后,先分析再运行:

1)将第四行改为:

m=i++;

n=++j;

2)程序改为:

inti,j;

printf(“%d,%d”,i++,j++);

3)在2)的基础上,将printf语句改为:

printf(“%d,%d”,++i,++j);

4)再将printf语句改为:

printf(“%d,%d,%d,%d”,i,j,i++,j++);

5)程序改为:

inti,j,m=0,n=0;

m+=i++;

n-=--j;

printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);

此程序主要考查自加、自减运算符以及复合运算符的用法。

1.要将“China”译成密码,密码规律是:

用原来的字母后面第5个字母代替原来的字母。

例如,字母“A”后面第5个是“F”,用“F”代替“A”。

因此,“China”应译为“Hmnsf”。

请编一程序,用赋初值的方法使c1、c2、c3、c4、c5五个变量的值分别为’C’、’h’、’i’、’n’、’a’,经过运算,使其分别变为’H’、’m’、’n’、’s’、’f’,并输出。

voidmain()

{charc1,c2,c3,c4,c5;

c1='

C'

;

c2='

h'

c3='

i'

c4='

n'

c5='

a'

c1=c1+5;

c2+=5;

c3+=5;

c4+=5;

c5+=5;

printf("

%c%c%c%c%c"

c1,c2,c3,c4,c5);

2.求下面算术表达式的值。

(1)x+a%3*(x+y)%2/4

设x=2.5,a=7,y=4.7

1》验证程序,要验证表达式的值,x,y,a只能定义为整型变量,或者用强制类型转换。

{intx,y,z,a;

x=2.5;

a=7;

y=4.7;

z=x+a%3*(x+y)%2/4;

%d"

z);

(2)(float)(a+b)/2+(int)x%(int)y

设a=2,b=3,x=3.5,y=2.5

2》#include<

{floatx,y,z;

inta,b;

a=2;

b=3;

x=3.5;

y=2.5;

z=(float)(a+b)/2+(int)x%(int)y;

%f"

总结:

一个实数赋值给一个整型变量将自动执行强制类型转换。

重点掌握%和/的知识点。

先自己分析,再试着用程序求解,看得到的结果是否一致。

3.写出下面表达式运算后a的值,设原来a=10。

设a和n已定义成整型变量。

(1)a+=a

(2)a-=2

(3)a*=2+3(4)a/=a+a

(5)a%=(n%=2),n的值等于5(6)a+=a-=a*=a

先自

(1)a+=a 

a的值为20 

(2)a-=2 

a的值为8

(3)a*=2+3 

a的值为50 

(4)a/=a+aa的值为0

(5)a%=(n%=2),n的值等于5 

a的值为0 

(6)a+=a-=a*=a 

a的值为0

己分析,再试着用程序求解,看得到的结果是否一致。

实验三简单的C程序设计

1.理解C语言程序的顺序结构

2.掌握常用的C语言语句,熟练应用赋值、输入、输出语句。

【一般实例】

【例1】按格式要求输入/输出数据

#include"

stdio.h"

inta,b;

floatx,y;

charc1,c2;

scanf(“a=%d,b=%d”,&

scanf(“%f,%e”,&

x,&

y);

scanf(“%c%c”,&

c1,&

c2);

printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n”,a,b,x,y,c1,c2);

1》运行该程序,按如下方式在键盘上输入数据

a=3,b=7↙

8.5,71.82↙

aA↙

请同学们仔细看哈输出结果

2》运行该程序,按如下方式在键盘上输入数据

8.5,71.82aA↙

仔细比较这两次输出的结果有什么不一样?

【例2】输入一个正整数x(100~999),取出x的个位十位百位。

任何一个整数除以10取余都得到这个数的个位,任何一个整数除以10取整都舍去个位。

如:

12%10=2,12/10=1。

{inta,gw,sw,bw;

inputa:

"

a);

gw=a%10;

sw=a/10%10;

bw=a/100;

gw=%d,sw=%d,bw=%d"

gw,sw,bw);

请同学们思考:

设x为整数x=5689,x%100=?

,x/100=?

【例3】输入一个数字字符,将它转换为数字输出。

inta;

charc;

inputc:

%c"

//以字符的形式输入数字就是输入数字字符

a=c-'

0'

//将数字字符转换为数字或者a=c-48;

a=%d"

a);

数字和数字字符这是两个不同的概念,如:

数字0和数字字符‘0’是不同的,因为他们的ASIIC码值不一样。

1、 

输入一个四位正整数,求出这个数的各位之和并输出这个数的各位与各位之和。

inta,h,gw,sw,bw,qw;

bw=a/100%10;

qw=a/1000;

h=gw+sw+bw+qw;

gw=%d,sw=%d,bw=%d,qw=%d,h=%d"

gw,sw,bw,qw,h);

2、 

输入一个整数(0-9之间),把这个整数转换为它对应的数字字符输出。

c=a+'

//将数字转换为数字字符

c=%c"

c);

实验四选择结构程序设计

1.了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”);

2.学会正确使用逻辑运算符和逻辑表达式;

3.熟练掌握if语句和switch语句。

【例1】已知三个数a,b,c,找出最大值放于max中。

分析:

由已知可得在变量定义时定义四个变量a,b,c和max,a,b,c是任意输入的三个数,max是用来存放结果最大值的。

第一次比较a和b,把大数存入max中,因a,b都可能是大值,所以用if语句中if——else形式。

第二次比较max和c,把最大数存入max中,用if语句的第一种形式if形式。

Max即为a,b,c中的最大值。

#include"

inta,b,c,max;

/*定义四个整型变量*/

scanf(“a=%d,b=%d,c=%d”,&

if(a>

=b)

max=a;

/*a>

=b*/

else

max=b;

/*a<

b*/

if(c>

max)

max=c;

/*c是最大值*/

max=%d"

max);

若输入下列数据,分析程序的执行顺序并写出运行结果

(1)a=1,b=2,c=3

(2)a=2,b=1,c=3

(3)a=3,b=2,c=1

(4)a=3,b=1,c=2

(5)a=3,b=3,c=2

(6)a=2,b=1,c=2

【例2】输入某学生的成绩,经处理后给出学生的等级,等级分类如下:

90分以上(包括90):

A

80至90分(包括80):

B

70至80分(包括70):

C

60至70分(包括60):

D

60分以下:

E

方法一:

(用if嵌套`)

由题意知如果某学生成绩在90分以上,等级为A;

否则,如果成绩大于80分,等级为B;

否则,如果成绩大于70分,等级为C;

否则,如果成绩大于60分为D;

否则,如果成绩小于60分,等级为E;

但当我们输入成绩时也可能输错,出现小于0或大于100,这时也要做处理,输出出错信息。

因此,再用if嵌套前,应先判断输入的成绩是否在0~100之间。

#include"

floatscore;

chargrade;

\npleaseinputastudentscore:

score);

if(score>

100||score<

0)

\ninputerror!

else

{if(score>

=90)

grade='

A'

else

=80)

B'

{if(score>

=70)

=60)

D'

elsegrade='

E'

}

\nthestudentgrade:

grade);

}

输入测试数据,调试程序。

测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。

方法二:

用switch语句

switch语句是用于处理多分支的语句。

注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。

所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。

则由此可得把score除十取整,化为相应的常数。

floatg;

ints;

charch;

\ninputastudentgrade:

g);

s=(int)g/10;

//对成绩数据取整操作

if(s<

0||s>

10)

{switch(s)

{case10:

case9:

ch='

break;

case8:

case7:

case6:

default:

\nthestudentscort:

ch);

输入测试数据。

【例3】有一函数:

xx<

1

y=2x-11<

=x<

10

3x-1x>

=10

用scanf函数输入x的值(分别为x<

1,1<

10,x>

=10三种情况),求y值。

y是一个分段表达式。

要根据x的不同区间来计算y的值。

所以应使用If语句。

intx,y;

printf(“pleaseinputx:

”);

scanf(“%d”,&

x);

if(x<

1)

y=x;

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

elseif(x<

{

y=2*x-1;

y=3*x-11;

1.c语言如何表示“真”与“假”?

系统如何判断一个量的“真”与“假”?

在c语言中一切非0的值都代表“真”,用数字0代表“假”;

用if分支语句来判断一个量的“真”或“假”。

if(a)这就表示判断a的值是“真”还是“假”。

2.写出下面各逻辑表达式的值。

设a=3,b=4,c=5(在计算的时候要考虑运算符的优先级问题)

(1)a+b>

c&

&

b==c0

(2)a||b+c&

b-c1

(3)!

(a>

b)&

!

c||11

(4)!

(x=a)&

(y=b)&

00

(5)!

(a+b)+c-1&

b+c/21

3.有3个整数a、b、c,由键盘输入,输出其中最小的数。

inta,b,c,min;

a=%d,b=%d,c=%d"

min=b;

min=a;

if(c<

min)

min=c;

min=%d"

min);

4.给一个不多于5位的正整数,要求:

a.求出它是几位数;

b.分别打出每一位数字;

c.按逆序打出各位数字,例如原数为321,应输出123。

inta,gw,sw,bw,qw,ww;

if(a>

=10000)

{gw=a%10;

sw=a/10%10;

bw=a/100%10;

qw=a/1000%10;

ww=a/10000;

\n该数是%d位数"

5);

\n个位=%d十位=%d百位=%d千位=%d万位=%d"

gw,sw,bw,qw,ww);

\n逆序输出为:

%d%d%d%d%d"

elseif(a>

=1000)

{gw=a%10;

4);

\n个位=%d十位=%d百位=%d千位=%d"

gw,sw,bw,qw);

%d%d%d%d"

=100)

3);

\n个位=%d十位=%d百位=%d 

"

%d%d%d"

=10)

gw=a%

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 自我管理与提升

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1