交通大学C语言第二次作业
上海交通大学数据结构与C语言程序设计习题及答案
专业课复习资料(最新版)封面数据结构与C语言程序设计一. 是非题(2’⨯10)( )1、 队列逻辑上是一个表头和表尾既能插入又能删除的线性表。
( )2、 任何一个递归过程都可以转换成非递归过程。
( )3、 与n个键值的集合{k1,k2,…,kn}相对应的堆是唯一的。
( )4、 在索引顺序表上实现分块查找,在等概率查找情况下,其查找长度只与表中元素个数有关,而与每块中元素个数无关。
( )5、 所谓加权无向图G的最小生成树T就是将G中各结点间的最短路径作为边所构造出来的G的子图。
( )6、 在10万个随机排列的数据中,要选出5个最小的数,采用快速排序比采用Shell排序、堆排序及各种直接排序法都快。
( )7、 B树查找算法的时间复杂性为O(n)。
( )8、 哈希表查找无需进行关键字的比较。
( )9、 在执行某个排序过程中,出现排序码朝着最终位置相反方向移动,则该算法是不稳定的。
( )10、任何有向图的顶点都可以按拓扑序排序。
二.填空题(2’⨯6)1.假设用于通信的电文由8个字母组成,其频率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10, 为这8个字母设计哈夫曼编码,其中编码长度最大的字母的编码是 位。
2.已知二叉树按中序遍历所得到的结点序列为DCBGEAHFIJK, 按后序遍历所得到的结点序列为DCEGBFHKJIA, 按先序遍历所得到的结点序列为 。
3. 设哈希表长度为11,散列函数H(k)=k MOD 11, 若输入顺序为(18,10,21,9,6,3,16,25,7),处理冲突方法为线性探测再散列,请构造哈希表 。
果 。
5.已知模式匹配的KMP算法中模式串t=’adabbadada’,其next函数的值为 。
6.在置换-选择排序中,假设工作区的容量为w,若不计输入、输出的时间,则对n个记录的文件而言,生成所有初始归并段所需时间为 。
三.简答题(6’⨯5)1.有n个不同的英文单词,它们的长度相等,均为m,若n>>50,m<5,试问采用什么排序方法时间复杂度最佳?为什么?2.对于一个栈,给出输入序列A,B,C,试给出全部可能的输出序列。
交大程序设计C试验二程序
1、程序填空下面程序的功能为:计算1〜100之间的偶数之和,完成以下的程序并运行出正确的结果。
修改后代码如下:# include <stdio.h> void main() {int i,s=0;/**************found*************/i=2;while(i<=100){s=s+i;/**************found**************/ i=i+2;}printf("s=%d",s);2、程序改错(1)下面程序的功能为:计算10!,修改以下的程序并上机运行通过。
修改后代码如下:#include <stdio.h> void main() {int n,t;for(n=1,t=1;t<=10;t++) n=n*t;printf("10!=%d\n”,n);(2)下面程序的功能为:计算1〜100之间能被3和7整除的数之和,修改以下的程序并上机运行通过。
修改后代码如下:#include <stdio.h> void main() {int i,s;i=0, s=0;while(i<=100){if(i%3==0 && i%7==0) s+=i;i=i+1;}printf("s=%d",s);3、编程题(1)有一个分数序列:2/1、3/2、5/3、8/5、13/8、……,编写一个C程序,求出这个数列的前30项之和。
编程后代码如下:#include <stdio.h> void main() {int a=1, b=2, c, i;float s=0;for (i=1; i<=3 0; i + +) {printf("第%2d 项:%d/%d\n", i, b, a);s += b*1.0/a*1.0;c=b;b=a+c;a=c; }printf("\n");printf ("分数序列:/1、/2、/3、/5、/8、……前项之和为:%f\n", s); }(2)编写程序,求1!+2!+3!+…+10!。
北交20春季《C语言程序设计(专)》在线作业二.doc
1.下面能正确进行字符串赋值操作的是A.char s[5]={ABCDE};B.char s[5]={ A, B, C, D, E};C.char *s;s=ABCDE;D.char *s;char a; scanf(%s,s);【参考答案】: C2.在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A.a=2000020000;B.a=4000*10;C.a=3000010000;D.a=4000L*10L 【参考答案】: D3.有如下程序:long fib(int n){ if(n>2)return(fib(n-1)+fib(n-2)); else return(2); } main(){ printf("%d\n",fib(3));} 该程序的输出结果是A.2B.4C.6D.8【参考答案】: B4.设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是A.p=1;B.*q=2;C.q=p;D.*p=5;【参考答案】: D5.C语言允许函数类型缺省定义,此时函数值隐含的类型是A.floatB.intC.longD.double【参考答案】: B6.下列程序的输出结果是int b=2; int func(int *a){ b += *a; return(b);} main(){ int a=2, res=2; res += func(&a); printf("%d\n",res); }A.4B.6C.8D.10【参考答案】: B7.阅读以下程序及对程序功能的描述,其中正确的描述是#include main(){ FILE *in,*out; charch,infile[10],outfile[10]; printf("Enter the infile name:\n"); scanf("%s",infile); printf("Enter the outfile name:\n"); scanf("%s",outfile); if((in=fopen (infile,"r"))==NULA.程序完成将磁盘文件的信息在屏幕上显示的功能B.程序完成将两个磁盘文件合二为一的功能 C.程序完成将一个磁盘文件复制到另一个磁盘文件中 D.程序完成将两个磁盘文件合并并在屏幕上输出【参考答案】: C8.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为A.4B.16C.32D.52【参考答案】: C9.假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROG ABCDEFGH IJKL<回车>,则输出结果为main( int argc, char *argv[]){ while(--argc>0)printf("%s",argv[argc]); printf("\n"); }A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH【参考答案】: D10.下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));} A.3 B.4 C.1 D.2【参考答案】: A11.关于宏定义的说法正确的是:A.宏名一般习惯用大写字母表示,以便与变量名相区别B.使用宏名代替一个字符串,可以减少程序中重复书写某些字符串的工作量C.宏定义是用宏名代替一个字符串,也就是简单的置换,不作正确性检查D.宏定义不是C语句,不必在行末加分号【参考答案】: ABCD12.已知:int x,a,b;下列选项中正确的if语句是______。
C语言上机作业试题5套含答案
第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。
程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。
例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。
例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。
(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。
)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。
方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。
例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。
⏹A说:不是我。
⏹B说:是C。
⏹C说:是D。
⏹D说:他乱说。
已知三个人说的是实话,一个人说的是谎话。
此刻要依照这些信息,找出做了好事的人。
北京交通大学《C语言程序设计(专)》在线作业二答案答案
北交《C语言程序设计(专)》在线作业二-0010试卷总分:100得分:100一、单选题(共10道试题,共40分)L执行以下程序后,a,b的值分别为main ( ){ int a, b, k=4, m=6, *pl=&k, *p2=&m; a=pl=&m;b=(*pl ) / ( *p2 ) +7;printf (z,a=%d \ n,z, a) ; printf ("b=%d\n〃,b) ;}A.-1,51,6B.0, 74, 10 答案:C2.请选出可用作C语言用户标识符的是void, define, WORDA.a3_b3,_123, IFFOR, 一abc, CaseB.2a, Do, Sizeof答案:B3.下列程序的输出结果是main (){ double d=3. 2; int x, y;x=l. 2; y= (x+3.8) /5. 0; printfd*y) ;}A.33.2B.03. 07 答案:C4.若已定义:int a [ ] ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p=a, i; 其中0≤i≤9,则对a数组元素不正确的引用是A. a [p-a]B.* (&a [i])C.p [i]a [10]答案:D5.下面程序段的运行结果是char *format=/,%s, a=%d, b=%d \ n z,; inta=ll, b=10;a+=b; printf (format, z,a+=b,z, a, b);A. for, 〃a+=b〃, abB.format, 〃a+二b〃C. a+=b, a=21, b=10D.以上结果都不对答案:C 6.在16位C编译系统上,若定义long a.;,则能给a赋40000的正确语句是A.a=20000+20000;a=4000*10;C.a=30000+10000;D. a=4000L*10L答案:D.以下程序有错,错误原因是 main ( ){ int *p,i;char *q,ch;p=&i; q=&ch;*p=40;*p=*q; }A. p和q的类型不一致,不能执行*p二*q;语句7.*p中存放的是地址值,因此不能执行*p=40;语句C.q没有指向具体的存储单元,所以*q没有实际意义D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*P二*q;没有意义,可能会影响后面语句的执行结果答案:D8.假定以下程序经编译和连接后生成可执行文件PROG. EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROG ABCDEFGH IJKL〈回车》,则输出结果为main ( int argc, char *argv 口) { while (一argc>0) printf (〃%s〃,argv [argc]) ; printf (〃\n〃);}A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH答案:D9.设有定义:int n=0, *p=&n, **q二&p,则下列选项中正确的赋值语句是p=l;A.*q=2;q二p;B.*p=5;答案:D10.设有int x=ll;则表达式(x++*l/3)的值是A. 3B.411C.12答案:A二、多选题(共10道试题,共40分)1L带参宏定义与函数的区别是:oA.函数调用时,先求出实参表达式的值,然后代入形参,带参的宏只是进行简单的字符替换B.函数调用是在程序运行时为形参分配临时的存储单元,而宏展开是在编译前进行的C.宏不存在类型问题,宏名和参数都不存在类型问题D.调用函数只能得到一个返回值,而使用宏可设法得到儿个结果答案:ABCD12.若定义:int a[2][3] {0, 2, 4, 6, 8, 10];以下描述正确的有A.* (a+1)为元素6的地址B.* (a[l]+l)的值为2C.** (a+1) +2的值为8D.a[0]与a相同答案:ACD13 .对静态变量的正确描述A.静态局部变量在静态存储区内分配单元B.静态外部变量可以赋初值,也可以不赋初值C.静态外部变量的作用与外部变量相同D.静态局部变量在函数调用结束时,仍保存其值,不会随着消失。
C语言作业2
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我们通常使用的都是十进制的数字,但其实在生活中也经常会使用其它进制。
C语言 课后作业题
C语言作业题【输出形式】用户在下一行显示输出结果【样例输入】3.47【样例输出】3【样例说明】与输入值3.47接近的整数为3和4,3.47比3.5小,舍掉小数部分,结果为3。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:c0104.c。
当前编程题:第一次作业--- 计算空格换行个数5. 【问题描述】编写一程序,分别计算所输入的字符串中空格,换行符的个数。
【输入形式】输入可以是键盘上的任意字符。
【输出形式】分别输出空格,换行符的个数,输出的结果一行显示,数字之间以空格格开。
【输入样例】bb ss pp=fz【输出样例】2 1【样例说明】字符b与s之间有一个空格,s与p之间有一个空格,p与f之间有一个换行。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:c0105.c。
当前编程题:第一次作业--- 整数组合(选做题)6. 【问题描述】假设unsigned short类型占16位,x、y、z都是short类型。
编写一程序,从键盘输入x,y 的值(十进制形式),然后将x的高8位作为z的高8位,y的高8位作为z的低8位,最后输出z的值(十进制形式)。
【输入形式】以十进制形式输入x和y的值,以空格隔开。
【输出形式】以十进制形式在新的一行上输出z值。
【输入样例】840 2177【输出样例】776【样例说明】840的二进制形式为:0000 0011 0100 10002177的二进制形式为:0000 1000 1000 0001将840的高8位作为结果的高8位,2177的高8位作为结果的低8位,所以结果为:0000 0011 0000 1000,即十进制形式为:776【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:c0106.c。
当前编程题:第二次作业--- 数字排序1. 【问题描述】编写一个程序,将输入的三个数从小到大排列出来。
【输入形式】用户在第一行输入三个数字,每个数字用空格分开。
电大《C语言知识学习程序设计》第1,2,3,4次作业任务及答案解析
第一次作业一、写出下列每个程序运行后的输出结果1. #include<stdio.h>void main(){int x=5;switch(2*x-3){case 4:printf("%d ",x);case 7:printf("%d ",2*x+1);case 10:printf("%d ",3*x-1);break;default:printf("%s ","default\n");}printf("%s\n","switch end.");}2. #include<stdio.h>void main(){int i,s=0;for(i=1;i<=6;i++)s+=i*i;printf("s=%d\n",s);}3. #include<stdio.h>void main(){int i,s1=0,s2=0;for(i=0;i<10;i++)if(i%2)s1+=i;else s2+=i;printf("%d %d\n",s1,s2);}4. #include<stdio.h>void main(){int n=10,y=1;while(n--){y++;y++;}printf("y=%d\n",y);}5. #include<stdio.h>void main(){int f,f1,f2,i;f1=f2=1;printf("%d %d ",f1,f2);for(i=3;i<=10;i++){f=f1+f2;printf("%d ",f);if(i%5==0)printf("\n");f1=f2;f2=f;}printf("\n");}6. #include<stdio.h>#include<math.h>void main(){int i,n;for(n=2;n<=20;n++){int temp=(int)sqrt(n);//sqrt(n)求出n的平方根并取整for(i=2;i<=temp;i++)if(n%i==0)break;if(i>temp)printf("%d ",n);}printf("\n");}7. #include<stdio.h>#include<math.h>const int M=20;void main(){int i,c2,c3,c5;c2=c3=c5=0;for(i=1;i<=M;i++){if(i%2==0)c2++;if(i%3==0)c3++;if(i%5==0)c5++;}printf("%d %d %d\n",c2,c3,c5);}8. #include<stdio.h>#include<math.h>const int M=20;void main(){int i,s;for(i=1,s=0;i<15;i++){if(i%2==0 || i%3==0)continue;printf("%d ",i);s+=i;}printf("%d\n",s);}参考答案:1、答案:11 14 switch end.2、答案:s=91.3、答案:25 20.4、答案:y=21.5、答案:1 1 2 3 58 13 21 34 556、答案:2 3 5 7 11 13 17 197、答案:10 6 48、答案:1 5 7 11 13 37第二次作业一、根据下列每个题目要求编写程序1.编写一个函数,函数头格式为“void fun4(char *a , int b[])”,分别求出由字符指针a所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b的相应元素。
C语言第二次作业答案
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语言程序设计》在线作业二-0010满分参考3
《C语言程序设计》在线作业二-0010已定义c为字符型变量,则下列语句中正确的是______。
A:c=''97''B:c="97";C:c=97;D:c="a";参考选项:C已知int m,n,i=2;执行语句m=-i++;n=++i;后,m和n的值分别是_____。
A:-3 4B:-2 4C:-3 3D:-2 3参考选项:B有以下程序片段 int n=0,p; do { scanf(%d,p); n++; } while(p!=12345n3); 此处do-while 循环的结束条件是()A:p的值不等于12345并且n的值小于3B:p的值等于12345并且n的值大于等于3C:p的值不等于12345或且n的值小于3D:p的值等于12345或且n的值大于等于3参考选项:D有以下语句,下面描述中正确的是_____。
typedef struct S{ int g; char h;} T;A:可用S定义结构体变量B:可用T定义结构体变量C:S是struct类型的变量D:T是struct S类型的变量参考选项:D已知int a=4;执行语句a+=a-=(a-2)*(a-2);后,a的值是_______。
A:0B:6C:-24D:-60参考选项:A下面程序的结果是什么?Int i=3,j=4;i?i++:j++;printf(“%d %d\n”,i,j);A:3 3B:4 4C:3 4D:4 3参考选项:B1。
交通大学C语言第二次作业教学内容
交通大学C语言第二次作业题目1正确满分1.00标记题目题干对于传值调用(By Value)的描述,哪一个正确?()选择一项:a. 实际参数和形式参数共占相同的内存位置b. 实际参数会把内存地址传递给形式参数c. 实际参数和形式参数可以使用不同的数据类型d. 实际参数会将变量内容复制后,把副本传给形式参数题目2正确满分1.00标记题目题干关于多态,下列说法错误的是()选择一项:a. 编译时多态是在程序运行时才能确定要调用成员方法的哪个版本,而运行时多态在编译时就能确定要调用成员方法的哪个版本b. 多态和重载是两个完全不同的概念,前者是通过定义虚方法和重写虚方法来实现,后者是通过对同一个函数名编写多个不同的实现代码来完成。
c. 多态可以分为编译时多态和运行时多态。
前者的特点是在编译时就能确定要调用成员方法的哪个版本,后者则是在程序运行时才能确定要调用成员方法的哪个版本d. 多态实际上就是重载,它们本质上是一样的题目3正确满分1.00标记题目题干关于静态成员,下列说法正确的是()选择一项:a. 在类实例化后静态成员也被实例化,因此不同的对象有不同的静态成员b. 在类定义时静态成员属于类,在类实例化后静态成员属于对象c. 同一个类中的静态成员,类实例化后,在不同的对象中形成不同的静态成员d. 在类实例化后,同类型的对象都共享类的静态成员,静态成员只有一个版本题目4正确满分1.00标记题目题干假设有类C继承类B,类B继承类A,则下面说法正确的是()选择一项:a. C仅继承类A的所有成员,不继承类B的成员b. 类C仅继承类B的所有成员,不继承类A的成员c. 类C不仅继承类B的所有成员,也继承类A的所有成员d. 类C继承类A的部分成员,同时继承类B的所有成员题目5正确满分1.00标记题目题干下列对于对象的描述,哪一个正确?()选择一项:a. 使用private将对象实例化b. 一个类只能产生一个对象c. 使用new运算符来自动实现属性d. 类下可以实例化多个对象题目6正确满分1.00标记题目题干下面关于接口的说法,正确的是()选择一项:a. 接口中定义的方法可以编写其实现代码b. 接口中定义的方法都必须是虚方法c. 接口中的所有方法都必须在其派生类中得到实现d. 继承接口的类可提供被继承接口中部分成员的实现代码题目7正确满分1.00标记题目题干下面关于类的定义,错误的是()选择一项:a. class A{void f( ){ }};b. class A{private void f() {return; }}c. class A{void f( ) { }}d. class A{f( ){ }}题目8正确满分1.00标记题目题干要从派生类中访问基类的成员,应使用关键字()选择一项:a. baseb. newc. thisd. override题目9正确满分1.00标记题目题干在类A中定义了属性y:class A{public int y{get{return 1;}set{ }}}并试图通过下列代码来实现对属性y的访问A b=new A();b.y=2;int x=b.y;对此,下列说法正确的是()选择一项:a. 属性y可读、但不可写,因此语句“b.y=2;”是错误的b. 属性y可读可写,因此变量x的值为2c. 属性y可写,但不可读,因此语句“int x=b.y;”是错误的d. 属性y可读可写,变量x的值为1题目10正确满分1.00标记题目题干在类A中试图重载构造函数,并使用构造函数创建对象:class A{A( ){ } //语句1public void A(int x){ } //语句2public A(int x, int y){ } //语句3}class Program{static voidMain(string[] args){A a=new A(); //语句4A b=new A(100,200); //语句5}}其中,正确的语句包括()。
c语言上机练习
}
答案:
2行main
4行末尾少分号
3.编写程序在屏幕上显示以下内容:
Programming is fun.
And Programming in C is even more fun!
答案:
#include <stdio.h>
int main( )
{
printf("Programming is fun.\nAnd Programming in C is even more fun!\n") ;
char c1='a',c2='b';
printf("a=%2d b=%2d c=%2d\n",a,b,c);
printf("x=%f,y=%f,z=%f\n",x,y,z);
printf("x+y=%5.2fy+z=%5.2fz+x=%5.2f\n",x+y,y+z,z+x);
printf("u=%6u n=%7ld\n",u,n);
return 0 ;
}
4.编写程序输出以下图案:
* * * *
* * *
* *
*
答案:
#include <stdio.h>
void main( )
{
printf("* * * *\n");
printf(" * * *\n");
printf(" * *\n");
printf(" *\n");
}
5.编写程序,计算并在屏幕上显示10~20的平方值。
C语言作业1
B .纯小数型 C .复数型 D .双精度型 学生答案: A 分数:3 得分:3.0 9. 以下的非法赋值语句是( )。 A .n=(i+2,i++) B .j++ C .++(i+1) D .x=j>0 学生答案: C 分数:3 得分:3.0 10. 下述语句执行后,变量k的值是( )。 int k=1; while(k++〈10〉; A .10 B .11 C .9 D .为无限循环,值不定 学生答案: B 分数:4 得分:4.0 11. 下面程序段的运行结果是( )。 int n=0; while(n++<=2); printf(“%d”,n); A .2 B .3 C .4 D .有语法错 学生答案: C 分数:4 得分:4.0 12. 当把以下四个表达式用做if语句的控制表达式时,有一个选项与其他 三个选项含义不同,这个选项是( )。 A .k%2 B .k%2= =1 C .(k%2)!=0 D .!k%2= =1 学生答案: D 分数:4 得分:4.0 13. 在以下程序段中,while循环执行的次数是( )。 int k=0; while(k=1) k++; A .执行一次 B .一次也不执行
B. 句号 C. 分号 D. 冒号 正确答案:C 满分:4 分 得分:4 12. 当把以下四个表达式用做if语句的控制表达式时,有一个选项与 其他三个选项含义不同,这个选项是( )。 A. k%2 B. k%2= =1 C. (k%2)!=0 D. !k%2= =1 正确答案:D 满分:4 分 得分:4 13. 若x的初值为10,则表达式(x>10?x+100 : x-10)的值是( )。 A. 10 B. 0 C. 100 D. 1 正确答案:B 满分:4 分 得分:4 14. 关于printf函数的格式字符,以下叙述正确的是( )。 A. 整形变量的输出格式符只有%d一种 B. %x是格式符,它可以适用于输出任何一种类型的数据 C. %8f表示输出实数的整数部份占8个字符宽度 D. %ld表示输出长整型数据 正确答案:D 满分:4 分 得分:4 15. 以下程序的输出结果是( )。 main( ) { int a, b; for(a=1,b=1;a<=100;a++) { if(b>=10) break; if(b%3==1) { b+=3; continue;} } printf(“%dn”,a); } A. 101 B. 6 C. 5 D. 4 正确答案:D 满分:4 分 得分:4 16. 若有如下程序段,则循环体语句共执行( )次。 int k=10; while(k>0) {k--;} A. 10 B. 9 C. 11 D. 0
西安交大C++程序设计第二章作业
西安交通大学实验报告课程计算机程序设计_实验名称基本数据类型的熟悉_第 1页共12页系别__ ___________ 实验日期 2014 年 3月 4日专业班级___ ____组别_____________ 实验报告日期 2014年3月 8 日姓名___ ____学号 __ 报告退发 ( 订正、重做 )同组人_________________________________ 教师审批签字一.实验目的1.通过实验熟悉整数类型变量、字符变量、双精度类型变量等基本数据类型的使用;2.学会小数的取整(通过强制类型转换的方法)、整数的求余、表达式中算术运算符的使用;3.条件语句(if else)、循环语句(while)的使用。
二.实验内容(一)第一题:编写一个程序,要求完成以下要求:1)提示用户输入任意的三个小数;2)显示这三个小数;3)将这三个小数相加并显示结果;4)将结果四舍五入转换成整数并显示。
1.要点分析:第一步:输入三个小数;第二步:显示所输入的小数;第三步:求和并显示;第四步:对所求得的和取整(强制类型转换,将双精度类型变量转换为整数变量),再用和减去该数从而得到和的小数部分;第五步:通过判断小数部分的大小(是>=还是<)决定是“四舍”还是“五入”,根据不同的情况输出“四舍五入”所得的结果(小于则直接输出取整所得;大于等于则取整后加1);第六步:选择是否再次开始,若是,循环前五步;否则,结束程序。
2.源程序代码:#include<iostream>using namespace std;int main(){double a,b,c,sum,left;验结果:(二)第二题:输入两个角度值x、y,计算如下式子的值(C++中的三角函数的输入是弧度):1.要点分析:第一步:输入两个角度值;第二步:判断所输入的值下式子是否有意义(即x与y之和是不是90+n*360),若无,提示重新输入直至正确;若有意义,进行下一步;第三步:将所输入的角度制下的值转化为弧度制下的值(需要用到pi,只能预先输入较为精确的pi值);第四步:计算并输出结果。
C放言第二次作业答案
<C 语言程序设计>第2次作业答案一、 单项选择题1B 2B 3D 4C 5B 6B 7D 8D 9B 10C11C 12B 13A 14C 15B 16B 17D 18A 19D 20B二、 填空题(本大题共11小题,每空2分,共30分)1. [&arr[i], arr+i]2.[(1)a[0]=1 a[1]=2 (2)实参和形参是值传递]3.[(1)0 (2)6]4. [*(s+j++)=*(s+i);]5.[(1)i<=7 (2)j=i+7]6. [123]7.[EFGHIJKL]8.[n1=1, n2=6]9.[(1)long num (2) num!=0]10.[120 ]11.[FO ]12.[(1)FILE *fp (2)fname (3)fp]三、 程序设计题1.定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数,然后按顺序每5个数求出一个平均值,放在另一个数组中并输出。
2.从键盘输入一个字符串和一个字符,把此字符串中偶数位的字符变为输入的字符,要求用函数实现字符串偶数位字符的改变,在主函数中输入字符串和字符,并输出偶数位改变的字符串。
3.编程将一个输入的字符串逆序显示输出。
在主函数中输入字符串并输出逆序存放的字符串,在函数中实现字符串的逆序存放。
例如:输入“abcdef ”, 输出”fedcba ” (此题是书上p202页的8.5题)4.用递归方法求n 阶勒让德多项式的值,递归公式为:⎪⎩⎪⎨⎧>---∙-===--1/))(*)1()()12((101)(21n n x p n x p x n n xn x p n n n (此题是书上p202页的8.13题)5. 从键盘输入4个学生的有关数据,然后把它们转存到磁盘文件上去。
1.#include <stdio.h>void main(){ int a[31]; float b[6];int i,k=1;while (k<31){a[k]=2*k; k++;}k=1; i=1;while (i<=5) {b[i]=(a[k]+a[k+1]+a[k+2]+a[k+3]+a[k+4])/5;k=k+5;i++;}for (i=1; i<=5; i++) printf("%f\n",b[i]);}2.#include <stdio.h>#include <string.h>#define MAX 80void convert( char s[], char ch){ int i=0;while (s[i]!='\0') {if (i%2==0) s[i]=ch;i++;}}void main(){ char s[MAX], ch;gets(s);scanf("%c",&ch);convert(s,ch);puts(s);}3.#include <stdio.h>#include <string.h>void inv(char *x, int n ){ char *p, m,temp, *i, *j;m=(n-1)/2;i=x; j=x+n-1; p=x+m;for (; i<p; i++, j--){ temp= *i; *i=*j; *j=temp;}}void main(){ char str[80];gets(str);inv(str, strlen(str));puts(str);}4.#include <stdio.h>void main(){int x,n;float p(int,int);printf("\ninput n & x:");scanf("%d,%d",&n,&x);printf("n=%d,x=%d\n",n,x);printf("P%d(%d)=%6.2f\n",n,x,p(n,x));}float p(int n,int x){if (n= =0)return(1);else if (n= =1)return(x);elsereturn ((2*n-1)*x*p((n-1),x)-(n-1)*p((n-2),x))/n;}5.#include <stdio.h>#define SIZE 5struct student_type{ char name[10];int num;int age;char addr[15];}stud[SIZE];void save( ){ FILE *fp;int i;if((fp=fopen("stu-list","wb"))==NULL){printf("cannot open file\n");return;}for(i=0;i<SIZE;i++)if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1)printf("file write error\n");fclose(fp);}void main(){ int i;for(i=0;i<SIZE;i++)scanf("%s%d%d%s",stud[i].name,&stud[i].num,&stud[i].age,stud[i].addr);save( );}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目1正确满分1.00标记题目题干对于传值调用(By Value)的描述,哪一个正确?()选择一项:a. 实际参数和形式参数共占相同的内存位置b. 实际参数会把内存地址传递给形式参数c. 实际参数和形式参数可以使用不同的数据类型d. 实际参数会将变量内容复制后,把副本传给形式参数题目2正确满分1.00标记题目题干关于多态,下列说法错误的是()选择一项:a. 编译时多态是在程序运行时才能确定要调用成员方法的哪个版本,而运行时多态在编译时就能确定要调用成员方法的哪个版本b. 多态和重载是两个完全不同的概念,前者是通过定义虚方法和重写虚方法来实现,后者是通过对同一个函数名编写多个不同的实现代码来完成。
c. 多态可以分为编译时多态和运行时多态。
前者的特点是在编译时就能确定要调用成员方法的哪个版本,后者则是在程序运行时才能确定要调用成员方法的哪个版本d. 多态实际上就是重载,它们本质上是一样的题目3正确满分1.00标记题目题干关于静态成员,下列说法正确的是()选择一项:a. 在类实例化后静态成员也被实例化,因此不同的对象有不同的静态成员b. 在类定义时静态成员属于类,在类实例化后静态成员属于对象c. 同一个类中的静态成员,类实例化后,在不同的对象中形成不同的静态成员d. 在类实例化后,同类型的对象都共享类的静态成员,静态成员只有一个版本题目4正确满分1.00标记题目题干假设有类C继承类B,类B继承类A,则下面说法正确的是()选择一项:a. C仅继承类A的所有成员,不继承类B的成员b. 类C仅继承类B的所有成员,不继承类A的成员c. 类C不仅继承类B的所有成员,也继承类A的所有成员d. 类C继承类A的部分成员,同时继承类B的所有成员题目5正确满分1.00标记题目题干下列对于对象的描述,哪一个正确?()选择一项:a. 使用private将对象实例化b. 一个类只能产生一个对象c. 使用new运算符来自动实现属性d. 类下可以实例化多个对象题目6正确满分1.00标记题目题干下面关于接口的说法,正确的是()选择一项:a. 接口中定义的方法可以编写其实现代码b. 接口中定义的方法都必须是虚方法c. 接口中的所有方法都必须在其派生类中得到实现d. 继承接口的类可提供被继承接口中部分成员的实现代码题目7正确满分1.00标记题目题干下面关于类的定义,错误的是()选择一项:a. class A{void f( ){ }};b. class A{private void f() {return; }}c. class A{void f( ) { }}d. class A{f( ){ }}题目8正确满分1.00标记题目题干要从派生类中访问基类的成员,应使用关键字()选择一项:a. baseb. newc. thisd. override题目9正确满分1.00标记题目题干在类A中定义了属性y:class A{public int y{get{return 1;}set{ }}}并试图通过下列代码来实现对属性y的访问A b=new A();b.y=2;int x=b.y;对此,下列说法正确的是()选择一项:a. 属性y可读、但不可写,因此语句“b.y=2;”是错误的b. 属性y可读可写,因此变量x的值为2c. 属性y可写,但不可读,因此语句“int x=b.y;”是错误的d. 属性y可读可写,变量x的值为1题目10正确满分1.00标记题目题干在类A中试图重载构造函数,并使用构造函数创建对象:class A{A( ){ } //语句1public void A(int x){ } //语句2public A(int x, int y){ } //语句3}class Program{static voidMain(string[] args){A a=new A(); //语句4A b=new A(100,200); //语句5}}其中,正确的语句包括()。
选择一项:a. 语句1、语句2和语句3b. 语句3和语句5c. 语句2和语句4d. 语句1、语句3和语句5题目11正确满分1.00标记题目题干对于类的static成员来说,即使没有实例化类的对象,也可以通过类名来引用选择一项:对错题目12正确满分1.00标记题目题干不能直接实例化接口。
选择一项:对错题目13正确满分1.00标记题目题干抽象基类的方法中,所有方法都必须被声明为abstract选择一项:对错题目14正确满分1.00标记题目题干对象定义后,需用“new”关键字将对象实例化,这样才能为对象在内存中分配保存数据的空间选择一项:对错题目15正确满分1.00标记题目题干构造函数名字和类名相同选择一项:对错题目16正确满分1.00标记题目题干具有抽象方法的类必须声明为abstract选择一项:对错题目17正确满分1.00标记题目题干使用关键字sealed声明的类不能是基类选择一项:对错题目18正确满分1.00标记题目题干析构函数可以重载选择一项:对错题目19正确满分1.00标记题目题干在类定义中,数据成员(字段)被默认声明为public选择一项:对错题目20正确满分1.00标记题目题干在属性的声明中,set完成对数据值的设置修改,value是一个关键字,表示要写入数据成员的值选择一项:对错题目21正确满分1.00标记题目题干在一个派生类的对象被实例化以后,基类的构造函数被显式或隐式地调用,来完成在派生类对象中任何基类实例变量所需的初始化。
选择一项:对错题目22正确满分1.00标记题目题干调用方法传递参数时,形式参数和实际参数的()必须匹配。
选择一项:a. 名称b. 类型c. 地址d. 访问修饰符题目23正确满分1.00标记题目题干假设A类有如下定义,设a是A类的一个实例,下列语句调用( )是错误的。
class A{ public int i;public static String s;public void method1() { }public static void method2() { }}选择一项:a. A.method2();b. A.method1();c. Console.Writeline (a.i);d. a.method1();题目24正确满分1.00标记题目题干类ABC定义如下:1 public class ABC2 { public int max( int a, int b) { }34 }将以下()方法插入行3是不合法的。
选择一项:a. private int max(int a, int b, int c){ }b. public float max(float a, float b){ }c. public float max(float a, float b, float c){ }d. public int max (int c, int d){ }题目25正确满分1.00标记题目题干MyClass类定义如下:class MyClass{public MyClass(int x){}}使用如下方式创建对象,( )是正确的。
选择一项:a. MyClass myobj=new MyClass( );b. MyClass myobj=new MyClass;c. Myclass myobj= new MyClass(1);题目26正确满分1.00标记题目题干假设类B继承了类A,下列说法错误的是()。
选择一项:a. 类B中的成员可以访问类A中的公有成员b. 类B中的成员可以访问类A中的私有成员c. 类B中的成员可以访问类A中的保护成员题目27正确满分1.00标记题目题干为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用AB.method 就可以调用该方法。
则下列()方法的书写形式是正确的。
选择一项:a. static void method( )b. public void method( )c. final void method( )d. abstract void method( )题目28正确满分1.00标记题目题干产生继承关系的子类如果要使用基类的同名成员,要使用哪一个关键字?()选择一项:a. baseb. virtualc. newd. override题目29正确满分1.00标记题目题干下列关于面向对象的程序设计的说法中,()是不正确的。
选择一项:a. 面向对象程序设计的关键设计思想是让计算机逻辑来模拟现实世界的物理存在b. 在面向对象程序设计方法中,其程序结构是一个类的集合和各类之间以继承关系联系起来的结构c. “对象”是现实世界的实体或概念在计算机逻辑中的抽象表示d. 对象是面向对象技术的核心所在,在面向对象程序设计中,对象是类的抽象题目30正确满分1.00标记题目题干下面关于构造方法的说法不正确的是()。
选择一项:a. 构造方法不可以重载b. 构造方法没有返回值c. 构造方法也属于类的方法,用于创建对象的时候给成员变量赋值d. 构造方法一定要和类名相同题目31正确满分1.00标记题目题干下面关于命名空间的说法,错误的是()。
选择一项:a. C#中,命名空间可有可无,看需要来定义和使用b. 使用命名空间的好处是,不但在不同命名空间中的成员可以重名,而且在同一个命名空间中的成员也可以重名c. 命名空间为程序的逻辑结构提供了一种良好的组织方法d. 同一个命名空间中的成员不能重名,不同命名空间中的成员可以重名题目32正确满分1.00标记题目题干下述()说法是不正确的。
选择一项:a. 实例变量是用static关键字声明的b. 方法变量在使用之前必须初始化c. 实例变量是类的成员变量d. 方法变量在方法执行时创建题目33正确满分1.00标记题目题干现在有两个类:Person与Chinese,要使Chinese继承Person类,()写法是正确的。
选择一项:a. class Chinese extends Person{}b. class Chinese :: Person{}c. class Chinese : Person{}d. class Chinese extands Person{}题目34正确满分1.00标记题目题干以下代码中,this是指()。
class bird{int x,y;void fly(int x,int y){this.x=x;this.y=y;}}选择一项:a. bird或flyb. birdc. 不一定,总是引用当前访问fly方法的那个对象d. fly题目35正确满分1.00标记题目题干以下关于继承的叙述正确的是()。
选择一项:a. 在C#中接口只允许单一继承b. 在C#中一个类只能实现一个接口c. 在C#中一个类不能同时继承一个类和实现一个接口d. 在C#中类只允许单一继承题目36正确满分1.00标记题目题干在C#中,以()关键字定义的类不能派生出子类。