c练习题1.docx
- 文档编号:29371109
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:54
- 大小:34.45KB
c练习题1.docx
《c练习题1.docx》由会员分享,可在线阅读,更多相关《c练习题1.docx(54页珍藏版)》请在冰豆网上搜索。
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,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 练习题
![提示](https://static.bdocx.com/images/bang_tan.gif)