c练习题1.docx

上传人:b****5 文档编号:29371109 上传时间:2023-07-22 格式:DOCX 页数:54 大小:34.45KB
下载 相关 举报
c练习题1.docx_第1页
第1页 / 共54页
c练习题1.docx_第2页
第2页 / 共54页
c练习题1.docx_第3页
第3页 / 共54页
c练习题1.docx_第4页
第4页 / 共54页
c练习题1.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

c练习题1.docx

《c练习题1.docx》由会员分享,可在线阅读,更多相关《c练习题1.docx(54页珍藏版)》请在冰豆网上搜索。

c练习题1.docx

c练习题1

1.下面是一个加法程序,程序运行时等待拥护从键盘输入两整数,然后求出它们的和并输出之。

观察运行结果(程序输出),上机验证该程序。

#include

voidmain()

{

inta,b,c;

printf(“Pleaseinputa,b;”);

scanf(“%d,%d”,&a,&b);

c=a+b;

printf(“%d+%d=%d\n”,a,b,c);

}

2.下面的程序用来求三个数的平均值,上机验证该程序。

main()

{

floata,b,c,average;

printf(“Pleaseinputabc:

”);

scanf(“%f%f%f”,&a,&b,&c);

average=(a+b+c)/3;

printf(“Theaveragevalueis:

%f\n”,average);

}

练习题C语言基本语法知识

一、选择题

(1)以下叙述中错误的是

A)用户所定义的标识符允许使用关键字

B)用户所定义的标识符应尽量做到“见名知意”

C)用户所定义的标识符必须以字母或下划线开头

D)用户定义的标识符中,大、小写字母代表不同标识

(2)以下叙述中错误的是

A)C语句必须以分号结束

B)复合语句在语法上被看作一条语句

C)空语句出现在任何位置都不会影响程序运行

D)赋值表达式末尾加分号就构成赋值语句

(3)以下能正确定义且赋初值的语句是

A)intn1=n2=10;B)charc=32;

C)floatf=f+1.1;D)doublex=12.3E2.5;

(4)设有定义:

intk=1,m=2;floatf=7;,则以下选项中错误的表达式是

A)k=k>=k

B)-k++

C)k%int

(f)D)k>=f>=m

(5)有以下程序段

intk=0,a=1,b=2,c=3;k=ac?

c:

k;

执行该程序段后,k的值是

A)3B)2C)1D)0

(6)以下选项中可作为C语言合法常量的是

A)-80.

B)-080

C)-8e1.0

D)-80.0e

(7).以下不能定义为用户标识符的是

A)Main

B)_0

C)_int

D)sizeof

(8)以下选项中,不能作为合法常量的是

A)1.234e04B)1.234e0.4

C)1.234e+4D)1.234e0

9)有以下程序

main()

{

intm=12,n=34;

printf("%d%d",m++,++n);1235m=13

printf("%d%d\n",n++,++m);3514

}

程序运行后的输出结果是

A)12353514B)12353513

C)12343514D)12343513

(10)有以下程序

main()

{

intm=3,n=4,x;

x=-m++;x=3m=4

x=x+8/++n;x=3+8/4=5

printf("%d\n",x);

}

程序运行后的输出结果是

A)3B)5C)-1D)-2

(11)以下符合C语言语法的实型常量是

A)1.2E0.5

B)3.14.159E

C).5E-3

D)E15

(12)若以下选项中的变量已正确定义,则正确的赋值语句是

A)x1=26.8%3

B)1+2=x2

C)x3=0x12

D)x4=1+2=3;

(13)设有以下定义

inta=0;

doubleb=1.25;

charc=’A’;

#defined2

则下面语句中错误的是

A)a++;B)b++C)c++;D)d++;

实验二整型、浮点型、字符型数据使用

1.编程序,输出如下图形:

*

**

****

******

********

#include

intmain()

{

inti;

intj;

for(i=1;i<=5;i++)

{

for(j=1;j<=i;j++)

{

printf("*");

}

printf("\n");

}

}

2.编写程序,实现下面的输出格式和结果:

a=5,b=7,a-b=-2,a/b=71%

c1=COMPUTER,c2=COMP,c3=COMP

x=31.19,y=-31.2,z=31.1900

s=3.11900e+001,t=-3.12e+001

#include

intmain()

{

inta=5;

intb=7;

printf("%d\n",a-b);

printf("%2.0f%%\n",(float)a/b*100);

charc1[]="COMPUTER",c2[]="COMP",c3[]="COMP";

printf("%s%s%s\n",c1,c2,c3);

floatx=31.19,y=-31.2,z=31.1900;

printf("%5.2f%4.1f%7.4f",x,y,z);

}

3.编写程序,输入变量x值,输出变量y的值,并分析输出结果。

⑴y=2.4*x-1/2

⑵y=x%2/5–x

⑶y=x>10&&x<100

⑷y=x>=10||x<=1

⑸y=(x-=x*10,x/=10)要求变量x、y是float型。

4.写出下面程序段的输出结果。

intk=10;

floata=3.5,b=6.7,c;

c=a+k%3*(int)(a+b)%2/4;3.5

5.调试下列程序,使之能正确输出3个整数之和及3个整数之积。

#include

voidmain()

{inta,b,c;

printf("Pleaseenter3numbers:

");

scanf("%d,%d,%d",&a,&b,&c);

ab=a+b;

ac=a*c;

printf("a+b+c=%d\n",a+b+c);

printf("a*b*c=%d\n",a+c*b);

}

输入:

40,50,60↙

#include

voidmain()

{

inta,b,c;

printf("Pleaseenter3numbers:

");

scanf("%d,%d,%d",&a,&b,&c);

intab=a+b;

intac=a*c;

printf("a+b+c=%d\n",ab+c);

printf("a*b*c=%d\n",ac*b);

}

实验关系运算符和逻辑运算符的使用

编写一c语言程序,测试下列各表达式(设a=10,b=4,c=5,d=1,x=2.5,y=3.5)

a

x:

‘A’A

d=++a<=10||b>=20||c++1

a+b>c&&b==c0

A||b+c&&b-c0

!

(a>b)&&!

c||11

!

(x=a)&&(y=b)&&0

!

(a+b)+c-1&&b+c/21

a%=(b%=3)10

a*=b=c=220

a+b,18+(b=4)*3,(a/b,a%b)24

实验五getcharputchar函数使用

1.下面程序的功能是,输入一个小写字母,输出其对应的的大写字母;若输入的不是小写字母,则提示输入出错。

请在程序中的横线处填写正确的语句或表达式,使程序完整。

上机调试程序,使运行结果与书中的结果一致。

提示:

(1)大写字母与小定字母的ASCII码具有如下关系:

大写字母的ASCII码=小写字母的ASCII码-32

#include

voidmain()

{

chara;

a=getchar();

if(a<'a'||a>'z')

{

printf("flase");

}else

{

putchar(a-32);

}

}

(2)可以使用条件表达式来判断输入的字母是否是小写字母。

如果ch为小写字母,

则逻辑表达式ch>=’a’&&ch<=’z’为真。

#include

#include

voidmain()

{

charch1,ch2;

system(“cls”);

puts(“请输入一个小写字母:

”);

ch1=____getchar()_____________;

(__ch1>=’a’&&ch1<=’z’___)?

putchar(_ch1-32_):

printf(“输入出错!

”);

}

运行结果1:

运行结果2:

运行结果3:

请输入一个小写字母:

请输入一个小写字母:

请输入一个小写字母:

b↙#↙t↙

B输入出错!

T

2.运行下列程序,注意观察运行结果

(1)#include

#include

voidmain()

{

charch;

system(“cls”);

ch=getchar();

putchar(ch);

printf(“---ASCII码:

%d”,ch);

}

(2)#include

#include

voidmain()

{

charc1,c2;

system(“cls”);

c1=getchar();

c2=getchar();

printf(“c1=\’%c\’\n”,c1);/*\’的作用是输出符号’*/

(c2==’\n’)?

printf(“c2=回车符”):

printf(“c2=\’%c\’”,c2);

}

说明:

运行这个程序是分别输入下面三组数据,注意观察各自的运行结果,并思考为什么会产生这样的运行结果。

第一组数据:

a↙

第二组数据:

ab↙

第三组数据:

abc↙

(3)#include

#include

voidmain()

{

charch,c1,c2;

system(“cls”);

printf(“请输入一个字母:

”);

ch=getchar();

c1=ch-1;

c2=ch+1;

printf(“\n%c的前一个字母是%c,后一个字母是%c”,ch,c1,c2);

}

说明:

可将程序中的语句

ch=getchar();

改为

ch=getch();conio.h

看看运行结果有什么变化

字符型数据练习题

一、选择题

(1)以下叙述中正确的是

A)调用printf函数时,必须要有输出项

B)使用putchar函数时,必须在之前包含头文件stdio.h

C)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出

D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码

(2)有以下程序

main()

{chara1='M',a2='m';

printf("%c\n",(a1,a2));}

以下叙述中正确的是

A)程序输出大写字母MB)程序输出小写字母m

C)格式说明符不足,编译出错D)程序运行时产生出错信息

 

(3)有以下程序

#include

main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}

当运行时输入:

a<回车>后,以下叙述正确的是

A)变量c1被赋予字符a,c2被赋予回车符

B)程序将等待用户输入第2个字符

C)变量c1被赋予字符a,c2中仍是原有字符2

D)变量c1被赋予字符a,c2中将无确定值

(4)数字字符0的ASCII值为48,若有以下程序

main()

{chara='1',b='2';

printf("%c,",b++);2

printf("%d\n",b-a);2

}

程序运行后的输出结果是

A)3,2

B)50,2

C)2,2

D)2,50

(5)有以下程序

main()

{chara='a',b;

print("%c,",++a);b

printf("%c\n",b=a++);b

}

程序运行后的输出结果是

A)b,bB)b,cC)a,bD)a,c

(6)有以下程序

main()

{chara,b,c,d;

scanf("%c,%c,%d,%d",&a,&b,&c,&d);

printf("%c,%c,%c,%c\n",a,b,c,d);

}

若运行时从键盘上输入:

6,5,65,66<回车>。

则输出结果是

A)6,5,A,BB)6,5,65,66C)6,5,6,5D)6,5,6,6

(7)有以下程序

main()

{chark;inti;

for(i=1;i<3;i++)

{scanf(“%c”,&k);

switch(k)

{case‘0’:

printf(“another\n”);

case‘1’:

printf(“number\n”);

}

}

}

程序运行时,从键盘输入:

01<回车>,程序执行后的输出结果是

A)anotherB)anotherC)anotherD)number

numbernumbernumbernumber

anothernumber

(8)已定义ch为字符型变量,以下赋值语句中错误的是

A)ch="\";B)ch=62+3;C)ch=NULL;D)ch="\xaa";

(9)已定义c为字符型变量,则下列语句中正确的是

A)c=‘97’;B)c="97";C)c=97;D)c="a";

(10)有以下程序段

intm=0,n=0;charc=‘a’;

scanf("%d%c%d",&m,&c,&n);

printf("%d,%c,%d\n",m,c,n);

若从键盘上输入:

10A10<回车>,则输出结果是:

A)10,A,10B)10,a,10C)10,a,0D)10,A,0

 

(11)已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量‘\101’是

A)字符AB)字符aC)字符eD)非法的常量

(12)若变量a是int类型,并执行了语句:

a=‘A'+1.6;,则正确的叙述是

A)a的值是字符CB)a的值是浮点型

C)不允许字符型和浮点型相加D)a的值是字符‘A’的ASCII值加上1。

 

实验六基本输入输出函数printf,scanf使用

1.完善程序

下面程序的功能是,根据商品的原价和折扣率,计算商品的实际售价。

请在程序中的横线处填写正确的语句或表达式,使程序完整。

上机调试程序,使程序的运行结果与的结果一致。

#include

voidmain()

{

floatcost,percent,c;

printf(“请输入商品的原价(单位:

元):

”);

scanf(“_%f______”,&cost);

printf(“请输入折扣率:

”);

scanf(“____%f___”,&percent);

c=cost*percent;

printf(“实际售价为:

%.2f”,c);

}

运行结果:

请输入商品的原价(单位:

元):

120↙

请输入折扣率:

0.85↙

实际售价为:

102.00元↙

2.编写程序

已知1公里=2里=1000米

编一程序,输入公里数,将其换算成里和米。

要求程序的输入输出形式如下:

请输入公里数:

2.5↙

2.5公里=5.00里=2500.00米

#include

intmain()

{

floata;

printf("请输入公里数");

scanf("%f",&a);

printf("%.1f公里=%.2f里=%.2f米",a,a*2,a*1000);

}

练习题

一、选择题

(1)有以下程序

#include

voidmain()

{intm,n,p;

scanf("m=%dn=%dp=%d",&m,&n,&p);

printf("%d%d%d\n",m,n,p);

}

若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是

A)m=123n=456p=789

B)m=123n=456p=789

C)m=123,n=456,p=789

D)123456789

(2)有以下程序

main()

{intm=0256,n=256;

printf("%o%o\n",m,n);

}

程序运行后的输出结果是

A)02560400B)0256256C)256400D)400400

(3)有以下程序

main()

{inta=666,b=888;

printf("%d\n",a,b);

}

程序运行后的输出结果是

A)错误信息B)666C)888D)666,888

(4)有以下程序

main()

{

intx=102,y=012;y是八进制

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

}

执行后输出结果是

A)10,01B)02,12C)102,10D)02,10

(5)有以下程序

main()

{inta;charc=10;

floatf=100.0;doublex;

a=f/=c*=(x=6.5);

printf("%d%d%3.1f%3.1f\n",a,c,f,x);1651.56.5

}

程序运行后的输出结果是

A)16516.5B)1651.56.5

C)1651.06.5D)2651.56.5

(6)有定义语句:

intx,y;,若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是

A)1112<回车>B)11,12<回车>

C)11,12<回车>D)11,<回车>

12<回车>

(7)设有如下程序段:

intx=2002,y=2003;

printf("%d\n",(x,y));

则以下叙述中正确的是

A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出

B)运行时产生出错信息

C)输出值为2002

D)输出值为2003

(8)若有以下程序段(n所赋的是八进制数)

intm=32767,n=032767

printf("%d,%o/n",m,n);

执行后输出结果是

A)32767,32767B)32767,032767

C)32767,77777D)32767,077777

(9)若有以下程序段

intm=0xabc,n=0xabc;

m-=n;

printf("%X\n",m);

执行后输出结果是

A)0X0B)0x0C)0D)0XABC

(10)已知i、j、k为int型变量,若从键盘输入:

1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是

A)scanf(“%2d%2d%2d”,&i,&j,&k);

B)scanf(“%d%d%d”,&i,&j,&k);

C)scanf(“%d,%d,%d”,&i,&j,&k);

D)scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);

(11)设有定义:

longx=-123456L;则以下能够正确输出变量x值的语句是

A)printf(“x=%d\n”,x);B)printf(“x=%1d\n”,x);

C)printf(“x=%8dL\n”,x);D)printf(“x=%LD\n”,x);

(12)以下程序段的输出结果是

inta=1234;

printf("%2d\n",a);

A)12B)34C)1234D)提示出错、无结果

(13)x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是

A)INPUTx、y、z;B)scanf(“%d%d%d”,&x,&y,&z);

C)scanf(“%d%d%d”,x,y,z);D)read(“%d%d%d”,&x,&y,&z);

(14)若变量已正确说明为float类型,要通过语句scanf(“%f%f%f”,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:

A)10<回车>B)10.0,22.0,33.0<回车>

22<回车>

33<回车>

C)10.0<回车>D)1022<回车>

22.033.0<回车>33<回车>

(15)有如下程序

main0

{inty=3,x=3,z=1;

printf(“%d%d\n”,(++x,y++),z+2);

}

运行该程序的输出结果是

A)34B)42C)43D)33

(16)下列程序执行后的输出结果是(小数点后只写一位)

A)666.06.0B)666.76.7

C)666.06.7D)666.76.0

main()

{doubled;floatf;longl;inti;

i=f=1=d=20/3;

printf("%d%ld%f%f\n",i,l,f,d);

}

(17)以下说法中正确的是

A)#define和printf都是C语句B)#define是C语句,而printf不是

C)printf是C语句,但#define不是D)#define和printf都不是C语句

(18)以下程序的输出结果是

A)17,021,0x11B)17,17,17

B)17,0x11,021D)17,21,11

main()

{intk=17;

printf("%d,%o,%x\n",k,k,k);

}

(19)以下叙述中正确的是

A)输入项可以是一个实型常量,如:

scanf("%f",3.5);

B)只有格式控制,没有输入项,也能正确输入数据到内存,例如:

scanf("a=%d,

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

当前位置:首页 > 自然科学 > 物理

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

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