C语言作业 (2)
- 格式:doc
- 大小:62.50 KB
- 文档页数:3
提交作业规范:(1)你的每次作业的cpp文件放在文件夹中,文件夹命名:学号+姓名+(第几次),(例如:“2014218899张三(第二次)“)(2)上传到文件夹:偶春生\班级。
千万别传错。
注意:(1)每做完一题,请用“file”下的“close workspace”关闭工作区,再重新开始做下一题。
(2)如果不能联网,请改网关地址:252或253(3)开机进入“basis”第一次上机题目:(1)从键盘上输入四个整数,计算并输出四个数的平均值。
(2)输入球的半径,计算并输出球的体积和表面积。
(3)输入一个三位正整数,分别输出该数的个位、十位和百位。
(提示:用%运算符提取数字,如123%10=3,用/运算符移除已提取的数字,如123/10 = 12)(4)请测试++、--、关系和逻辑运算符。
第二次上机题目:(1)平面上有一园C:(x-3)2+(y-4)2= 25;输入点P(x,y)的坐标值,判断P点在园C内(包括园上)还是园C外。
(2)输入一英文字符,如果是大写字符,请输出:“您输入的是大写字符。
”,如果是小写字符,请输出:“您输入的是小写字符。
”,(3)某人某天开始“三天打鱼,两天晒网”,问该人在以后的第n天是打鱼还是晒网?(4)输入火车的出发时间和到站时间,计算火车的运行时间。
(出发时间和到站时间用四位整数表示,如1230表示12点30分,假设火车不跨天运行。
)(5)从键盘上输入三个整数,分别存放在变量num1, num2, num3中,编写程序对这三个数进行排序,使得num1 <=num2<=num3。
第三次上机题目:(1)输入十个数,分别计算出其中正数、负数的和。
(2)输出1—100内能被3整除或个位数是3的数。
(3)打印出大写英文字母,每行最多输出十个。
(4)输入十个数,求出其中的最小值。
(5)求出e的值,e = 1+1+1/2!+1/3!+…+1/n!。
1 .C语言中规定函数的返回值的类型是由()。
A.return语句中的表达式类型所决定B.调用该函数时系统临时决定C.调用该函数时的主调用函数类型所决定D.在定义该函数时所指定的函数类型所决定参考答案:D2 .以下不能正确进行字符串赋初值的语句是____。
A.char str[5]="good“B.! char str[]=goodC.! char *str=goodD.! char str[5]={'g','o','o','d'}!参考答案:A3 .C语言中_______。
A.能使用do-while语句构成的循环B.do-while语句构成的循环必须用break语句才能退出C.do-while语句构成的循环,当while语句中的表达式为非零时结束循环D.do-while语句构成的循环,当while语句中的表达式值小于零时结束循环参考答案:A4 .以下选项中,与k=n++完全等价的表达式是_____。
A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1参考答案:A5 .有定义语句:int b;char c[10]; ,则正确的输入语句是_____。
A.scanf("%d%s",&b,&c);B.scanf("%d%s",&b,c);C.scanf("%d%s",b,c);D.scanf("%d%s",b,&c);参考答案:B6 .若有定义:int aa[8];则以下表达式中不能代表数组元aa[1]的地址的是_____。
A.&aa[0]+1B.&aa[1]C.&aa[0]++D.aa+1参考答案:D7 .若i 、j 已定义为int 型,则以下程序段中语句printf( “%d ”,i*j); 的执行次数是_____。
第4章 C语言流程控制题库一、选择题1.if语句的选择条件是_______。
A.只能用关系表达式B.只能用关系表达式或逻辑表达式C.只能用逻辑表达式D.可以用任何表达式2.已知int x = 2 , y = -1 , z = 3 ;,执行下面语句后,z的值是_______。
if( x < y ) if( y < 0 ) z = 1 ; else z++ ;A.1 B.2 C.3 D.43.以下程序段的输出结果是_______。
int a = 0 , b = 1 , c = 2 ;if( a < b ) if( b < 0 ) c = 0 ; else c += 1 ;printf( "%d\n" , c ) ;A.0 B.1 C.2 D.34.当a = 1,b = 3,c = 5,d = 4时,执行下面一段程序后,x的值为_______。
if( a < b )if( c < d ) x = 1 ;elseif( a < c )if( b < d ) x = 2 ;else x = 3 ;else x = 6 ;else x = 7 ;A.1 B.2 C.3 D.65.为了避免嵌套的if-else的二义性,C语言规定,else与_______配对。
A.与最外层的ifB.其之前最近的不带else的ifC.其之后最近的ifD.与最近的{ }之前的if6.若有定义:float w ; int a , b ; 则合法的switch 语句是_______。
A. switch( w ){ case 1.0 : printf( "*\n" ) ;case 2.0 : printf( "**\n" ) ;}B. switch( a ){ case 1 printf( "*\n" ) ;case 2 printf( "**\n" ) ;}C. switch( b ){ case 1 : printf( "*\n" ) ;case 1 + 2 : printf( "**\n" ) ;default : printf( "\n" ) ;}D. switch(a+b);{ case 1 : printf( "*\n" ) ;case 2 : printf( "**\n" ) ;default : printf( "\n" ) ;}7.有以下程序段int k = 10 ;while( k = 0 ) k = k - 1 ;则下面描述中正确的是_______。
2020年秋季C语言程序设计(本)网上作业2一、单选题1. (5分)以下程序的输出结果是( D )。
#include <stdio.h> main() { int z,y[3]={2,3,4};Z=y[y[2]]=10; printf("%d",z);}A. 10B. 2C. 3D. 运行时出错,得不到确定值2. (5分)能正确表示关系a≥10或a≤0的C逻辑表达式是( D )。
A. a>=10 or a<=0B. a>=0|a<=10C. a>=10 && a<=0D. a>=10‖a<=03. (5分)下列程序的运行结果是( B )。
#include <stdio.h> void fun(int *a, int *b){ int *k; k=a; a=b; b=k;} main() { int a=3, b=6, *x=&a, *y=&b;fun(x,y); printf("%d %d", a, b);}A. 6 3B. 3 6C. 编译出错D. 0 04. (5分)以下叙述中,( D )不正确。
A. C语言中,文本文件以ASCⅡ码形式存储数据B. C语言中,访问二进制文件的速度比文本文件快C. C语言中,随机读写方式不适用于文本文件D. C语言中,顺序读写方式不适用于二进制文件5. (5分)若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是( A )。
A. p=2*(int*)malloc(sizeof(int));B. p=(int*)malloc(2*sizeof(int));C. p=(int*)malloc(2*2);D. p=(int*)calloc(2,sizeof(int));6. (5分)该程序的执行结果是( C )。
H1:计算通用产品代码(UPC)的校验位(选作)许多年来,货物生产商都会把超市售卖的每件商品上放置一个条码。
这种被称为通用产品代码(Universal Product Code,缩写UPC)的条码可以识别生产商和产品。
超市可以通过扫描产品上的条码来确定支付此项商品的费用。
每一个条码由十二位数字构成,通常这些数字会显示在条码下面。
例如,包装为26盎司的Morton牌碘化盐所用条码下的数字是:0 24600 01003 0第一个数字表示商品的种类(0表示大部分的食品杂货,2表示需要称量的货品,3表示药品或和健康相关的商品,而5表示优惠券)。
接下来的一组五位数字用来识别生产商。
而第二组五位数字则用来区分产品类型(其中包括包装尺寸)。
最后一位数字是“校验位”,它可以帮助鉴别先前数字中的错误。
如果条码扫描出现错误,那么前十一位数字和最后一位数字可能会不一致,而超市扫描机也会拒绝整个条码。
下面是一种计算校验位的方法:首先把第一位、第三位、第五位、第七位、第九位和第十一位数字相加。
然后把第二位、第四位、第六位、第八位和第十位数字相加。
接着把第一次加法结果乘以3后再加上第二次加法的结果。
随后,再把上述结果减去1。
减法后的结果除以10取余数。
最后,用9减去上一步骤中得到的余数。
现在以Morton碘盐为例,第一组数字的加法是0+4+0+0+0+3=7,而第二组数字的加法是2+6+0+1+0=9。
把第一组加法值乘以3后再加上第二组加法值得到的结果是30。
再减去1,结果变为29。
再把这个值除以10取余数为9。
9在减去余数结果9,最终值为0输入每次输入三行数据,第一行是UPC的第一位数字,第二行是UPC的第一组五位数字,第三行是UPC的第二组五位数字。
输出UPC的校验位测试输入期待的输出时间限制内存限制额外进程测试用例1以文本方式显示1.0↵2.24600↵3.01003↵以文本方式显示1.0↵1秒64M 0解法:#include<stdio.h>main(){int a,b,c,q,e,f,g,h,i,j,k,m,n,p,x,y,z;scanf("%1d",&a);scanf("%1d%1d%1d%1d%1d",&b,&c,&q,&e,&f);scanf("%1d%1d%1d%1d%1d",&g,&h,&i,&j,&k);x=a+c+e+g+i+k;y=b+q+f+h+j;m=x*3+y;n=m-1;z=n%10;p=9-z;printf("%d\n",p);}H2:数制转换(选作)成绩: 5 / 折扣: 0.8我们通常使用的都是十进制的数字,但其实在生活中也经常会使用其它进制。
1.计算机能直接执行的程序是______。
A)源程序 B)机器语言程序 C)高级语言程序 D)汇编语言程序2.以下选项中,不属于C语言结构化程序设计三种基本结构的是_______。
A)选择结构 B)顺序结构 C)递归结构 D)循环结构3.以下选项中,可以作为C语言用户标识符的一组是_______-。
A) void、define、WORO B)a3_b3、_123、xyzC)For、_abc、case D)2a、Do、sizeof4.已知:char a=’\70’;,则变量a________。
A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明非法5.已知:float x=2,y;,则表达式y=x+3/2的值是________。
A)3.5 B)3.0 C)2.0 D)1.06.C语言中,运算对象必须是整型数值的运算符是________。
A)% B)/ C)< D)!_________√(a²+b²)7.以下选项中,数学式1/2sin ( _________ )| c |A)1/2sin(sqrt(a^2+b^2)/fabs(c)) B)0.5sin(sqrt(a^2+b^2)/fabs(c))C) 1/2*sin(sqrt(a*a+b*b)/fabs(c))D)1.0/2*sin(sqrt(a*a+b*b)/fabs(c))8、已知:int i=10,j=1;,则执行语句print(“%d,%d”,i--,++j);后,输出结果是______。
A)9,2 B)10,2 C)9,1 D)10,19、已知:int a=5;,执行语句a=3*5,a*4,a+5;后,变量a的值是_________。
A)45 B)20 C)15 D)1010、已知:int x,y,t;,则语句:t=x,x=y,y=z;的功能是________。
A)将x和y按从大到小排列 B)将x和y按从小到大排列C)交换x和y的值 D)语法错误11.以下选项中叙述正确的是____________。
C语言第二次作业1.某年如果能被4整除,但不能被100整除,或者能被400整除的年是闰年。
判断从键盘输入的年份是否为闰年。
一、实验目的:掌握if else选择结构二、实验容:#include<stdio.h>int main(){int x;printf("请输入年份:\n");scanf("%d",&x);if(x%4==0&&x%100!=0||x%400==0)printf("是闰年.\n");elseprintf("不是闰年.\n");return 0;}三:调试结果:2、某个自动加油站有‘a’,‘b’,‘c’三种汽油品种,单价分别为6.92,7.37,7.64(元/公升),也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠,请编程序针对用户输入加油量m,汽油品种y和服务类型z(‘f’—自动加,‘m’—自己加,‘e’—协助加),(注:‘f’—自动加无优惠),计算应付款pay。
(请用多分支选择switch语句)。
一、实验目的:掌握switch语句二、实验容:#include<stdio.h>#include<math.h>int main(){float p,q,m,pay;char y,z;printf("请输入汽油品种(y),服务类型(z),加油量(m)\n");scanf("%c,%c,%f",&y,&z,&m);switch(y){case'a':p=6.92;break;case'b':p=7.37;break;case'c':p=7.64;break;}switch(z){case'f':q=1;break;case'm':q=0.95;break;case'e':q=0.9;break;}pay=p*q*m;printf("pay=%.2f\n",pay);return 0;}三:调试结果:3、输入三角形三边,判断该三角形是什么三角形(等边,等腰,普通和直角)一、实验目的:掌握switch语句二、实验容:#include<stdio.h>int main(){int a,b,c;printf("请输入三角形的三边长:\n");scanf("%d,%d,%d",&a,&b,&c);if(a==b&&b==c)printf("此三角形是等边三角形");else if(a==b||b==c||a==c)printf("此三角形是等腰三角形");else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)printf("此三角形是直角三角形");elseprintf("此三角形是普通三角形");return 0;}三、调试结果4. 编写一个菜单程序,输入1~3以进入相应的选择项。
C语言《C语言》2014年秋学期在线作业(二)一,单选题1. 已知 int i=1;执行语句while(i++<4)后,变量i的值为A. 3B. 4C. 5D. 6?正确答案:C2. 用数组名作为函数调用时的实参,则实际传递给形参的是A. 数组的第一个元素值B. 数组中全部元素值C. 数组的首地址D. 数组的元素个数?正确答案:C3. 在“while(!a)”中,其中“!a”与表达式()等价。
A. a= =0B. a= =1C. a!=1D. a!=0?正确答案:D4. 设有定义int a[ ]={1,5,7,9,11,13},*p=a+3;则*(p-2),*(a+4)的值是()。
A. 5 11B. 1 9C. 5 9D. 有错误?正确答案:A5. 初始化多维数组的语句中,可以默认的是()。
A. 最后一个下标界B. 第1个下标界C. 第2个下标界D. 以上都不对?正确答案:B6. 以下程序中,while循环的循环次数是()。
main(){int i=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}……}A. 1B. 10C. 6D. 死循环,不能确定次数?正确答案:D7. 若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a; for(b=1;b<=c;b++) s=s+1;则与上述程序段功能等价的赋值语句是()。
A. s=a+b;B. s=a+c;C. s=s+c;D. s=b+c;?正确答案:B8. 下列数组定义及赋值不正确的是A. int a[10]={0,1,2,3,4,5,6,7,8,9};B. int a[ ]={0,1,2,3,4,5,6,7,8,9};C. int a[2][5]= {0,1,2,3,4,5,6,7,8,9};D. int a[2][ ]= {0,1,2,3,4,5,6,7,8,9};?正确答案:D9. 以下选项中不能正确赋值的是A. char b[]={′H′,′e′,′l′,′l′,′o′,′!′};B. char b[10];b="Hello!";C. char b[10]= "Hello!";D. char *str="Hello!";?正确答案:B10. 以下程序的输出结果是main(){int x=8;for(;x>0;x--)if(x%3==0){printf(“%d”,--x);continue;}}A. 74B. 52C. 963D. 852?正确答案:B11. 从变量的作用域来分,可分为全局变量和局部变量,形参是()。
C语言作业
1、求下列各数的原码、反码和补码
24 -56 39 27
2、求下列表达式的值
a.若a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,求a,b,c的值。
b.若a是int 型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值。
c.若有定义:int a,b;求表达式a=2,b=5,a++,b++,a+b的值。
d.当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!=b)&&(n=b>c)后,求m,n的值。
e.若有说明语句:int x=1,y=0;求表达式x-->(y+x)?5:25>y++?'1':'2'的值。
3、编程求下列各题
a.用键盘输入语句求任意半径的圆的周长、面积和球的体积。
b.用键盘输入语句求任意三个数的最大值和最小值
c.用键盘输入语句输入任意三位数,求这三个数的个位、十们和百位数字。
d.用键盘输入语句任意输入两个数,求它们的和、差、积、商和余数。
选择结构程序设计题
1、编制程序,要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。
2、试编程判断输入的正整数是否既是5又是7的整数倍,若是输出yes,否则输出no。
3、请编程序,根据以下函数关系,对输入的每个x值,计算出相应的y值。
4、输入一个整数,判断它能否被3,5,7整除,并输出以下信息之一:
(1)能同时被3,5,7整除
(2)能被其中两数整除(要指出哪两个)。
(3)能被其中一个数整除(要指出哪一个)。
(4)不能被任何一个整除。
5、假设奖金税率如下(a代表奖金,r代表税率)
a<500 r=0%
500≤a<1000 r=5%
1000≤a<2000 r=8%
2000≤a<3000 r=10%
3000≤a r=15%
以下程序对输入的一个奖金数,求税率和应交税款以及实得奖金数(扣除奖金税后)。
6、已知三个数把这三个按从小到大输入
7、给出一个百分制成绩,要求给出它的等级‟A‟…B‟…C‟…C‟…E‟。
90以上为‟A‟,80-90为‟B‟,70—80为‟C‟,60—70为‟D‟,60以下为‟E‟
8、已知三角形的三边求三角形的面积。
9、从键盘任意输入一个字符,进行如下判断:
① 如果是大写字母则转换为小写字母输出
② 如果是小写字母则转换为大写输出
③ 如果是数字字符,则输出对应字符的ASCII 码
④ 若是其它字符,则输出“Error !”
循环上机作业
1、 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
2、 判断101-200之间有多少个素数,并输出所有素数。
3、 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 本身。
例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
4、 将一个正整数分解质因数。
例如:输入90,打印出90=2*3*3*5。
5、 输入两个正整数m 和n ,求其最大公约数和最小公倍数。
6、 一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如6=1+2+3.编程找出1000以内的所有完数。
7、
用迭代法求x =
112n n n a x x x +⎛⎫=+ ⎪⎝⎭
8、 用牛顿迭代公式1'()()
n n n n f x x x f x +=-求下面方程在1.5附近的根: 2x 3-4x 2+3x-6=0
9、用二分法求下面方程在(-10,10)之间的根:2x 3-4x 2+3x-6=0
10 (选作题)、统计候选人的票数:假设某次活动要从四个候选人中选1个人出来当领导,采用不记名投票方式,选票最高者当选;如果最高的票数相同采用抽签的办法决出胜负(抽签的办法是随机输入一个正整数,对4求余,如果结果与最高者的代号相同则该代号对应的候选人当选,否则重新输入一个正整数,重复执行上述规则,直到找到候选人为止);这四个是张三、李四、王五、黄六,他们的代号是0、1、2、3;选民的人数不确定。
数组:
1、求一维数组中的最大数和最小数以及它们所在位置。
2、从键盘上输入一个数x ,从一维数组中输出大于x 的数
3、从键盘上输入一个数x ,在一维数组查找是否有数x ,若有的话有几个。
4、将1到n 的自然数放在一维数组中,输出3的倍数的数。
字符数组
1、任意输入一个字符串,求该字符串中的字符个数
2、任意输入两个字符串,交换这两个字符串。
3、输入一段英文,统计该段英文中有多少个单词。
4、将一数组中第m 到第n 位置上的字符复制在别一个数组
中形成新的字符串。