北京交通大学黄宇C语言第二次作业
交通大学C语言第二次作业
![交通大学C语言第二次作业](https://img.taocdn.com/s3/m/b52f572a1eb91a37f1115cb6.png)
题目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语言大作业
![C语言大作业](https://img.taocdn.com/s3/m/7c8f09c99ec3d5bbfd0a749f.png)
-1-
C 语言第二次大作业
第一题 综合计算题
1. 题目要求
(1)设有一四位数 abcd=(ab+cd)2,编写一个程序,求 a、b、c、d。 (一种提示:abcd 是个 4 位数,可表达为:a*1000+b*100+c*10+d,
同理,ab 表示是 2 位数,也可表达为 a*10+b) (2)鸡兔问题:鸡兔共 30 只,脚共有 90 个。编写一个程序,求鸡、
gotoxy(20,7);
printf("① 设有一四位数 abcd=(ab+cd)2,求 a、b、c、d。");
gotoxy(20,8);
printf("② 鸡兔问题:鸡兔共 30 只,脚共有 90 个。求鸡、兔各几
-5-
C 语言第二次大作业
只?"); gotoxy(20,9); printf("③ 输出 3~100 之间的全部素数,每行显示 6 个素数。"); gotoxy(20,10); printf("④ 退出程序"); gotoxy(20,11); printf("◆操作提示:按上下键选择,回车键确定"); gotoxy(20,7);
兔各多少只,并在屏幕上显示相应的结果,每行显示一种结果。 (3)编写一个程序,输出 3~100 之间的全部素数,每行显示 6 个素数
北航《C语言程序设计》在线作业二满分答案
![北航《C语言程序设计》在线作业二满分答案](https://img.taocdn.com/s3/m/6808e83d2af90242a895e512.png)
北航《C语言程序设计》在线作业二一、单选题(共 10 道试题,共 40 分。
)1. 若用数组名作为函数调用时的参数,则实际上传递给形参的是A. 数组元素的个数B. 数组的第一个元素值C. 数组中全部元素的值D. 数组首地址-----------------选择:D2. 下列关于#include命令的叙述中,错误的是A. #include命令中,文件名可以用双引号或尖括号括起来B. 一个被包含文件中又可以包含另一个被包含文件C. 一个#include命令中可以指定多个被包含文件D. 一个#include命令中只能指定一个被包含文件-----------------选择:C3. 在C程序中,若对函数类型未加说明,则函数的隐含类型为( )A. intB. doubleC. voidD. char-----------------选择:A4. 表达式( )的值是0。
A. 3%5B. 3/5.0C. 3/5D. 3<5-----------------选择:C5. 已知:int a=5; 执行以下的程序段后输出结果为_______.Do { printf(“%dn”,a--); } while (!a);A. 5B. 4C. 陷入死循环D. 5 4 3 2 1-----------------选择:A6. 有以下语句: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);-----------------选择:B7. 若有定义:int x; 要将x强制转换为双精度型,应该写成A. x(double)B. x(double)C. (double)xD. double(x)-----------------选择:C8. 函数形参与实参之间的传递是“值传递”,以下叙述正确的是( )A. 实参和与其对应的形参共用一个存储单元B. 实参和与其对应的形参各占用独立的存储单元C. 当实参和与其对应的形参同名时才共用一个存储单元D. 形参是形式的,不占用存储单元-----------------选择:B9. 设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为_____。
北交C语言最终大作业
![北交C语言最终大作业](https://img.taocdn.com/s3/m/2717d62c915f804d2b16c1df.png)
1、设计方案:由于本次是C语言最后一次大作业,所以决定做一个与众不同的题目。
于是决定选择了这个题目。
计划设计:入库(进货)登计功能,出货记录功能,库存游戏查询功能,删除库存游戏记录的功能,近期出货收益等功能。
所以本次程序决定,将不同功能设置为不同选项,程序中分别作为不同功能的函数。
通过主函数来输出其功能。
2、模块说明:本程序总共分为7个大模块。
1)主函数模块,用以选择功能;2)游戏查询模块,由函数_search()构成,功能为查询库存游戏。
3)游戏录入模块,由函数_register()构成,功能为录入新游戏。
4)游戏删除模块,由函数_delete()构成,功能为删除库存的游戏。
5)卖出登记模块,由函数_sell()构成,功能为登记卖出的游戏数量。
6)卖出游戏查询模块,由函数_sellsearch()构成,功能为查询卖出游戏数量及金额。
7)保存数据模块,由函数save()、start()共同构成,功能为保存每次使用的数据。
3、代码分析:程序代码:(分析使用红字)#include <stdio.h>#include <string.h>#include <stdlib.h>extern int b=0; /*外部声明b,做为当前游戏的序号*/extern int s=0; /*外部声明s,做为近期(10次内或10次)卖出游戏的次数,s最大为10*/struct _reg/*构建结构体reg,用来放置b和s */{int b;int s;}reg;struct _game/*构建结构体game,内有数字编号、游戏名称、游戏类型、数量、价格5项*/{int num;char name[40];char type[10];int amount;int cost;} game[100];/*建立了100个结构体数组,用来存储数据*/struct _game G[10];/*用来记录卖出游戏的结构体*/void start()/*初始化,把保存的数据导入*/{int i=0;FILE *fp1,*fp2,*fp3;if((fp1=fopen("game_reg.txt","r"))==NULL)fp1=fopen("game_reg.txt","w+");/*若无game_reg.txt文件,则建立一个新文件*/else{fp1=fopen("game_reg.txt","r");fread(®,sizeof(struct _reg),1,fp1);}/*若有game_reg.txt文件,则从中导入数据*/fclose(fp1);if((fp2=fopen("game_list.txt","r"))==NULL)fp2=fopen("game_list.txt","w+");/*若无game_list.txt文件,则建立一个新文件*/else{fp2=fopen("game_list.txt","r");for(i=0;i<reg.b;i++)fread(&game[i],sizeof(struct _game),1,fp2);}/*若有game_list.txt文件,则从中导入数据*/fclose(fp2);if((fp3=fopen("game_sell.txt","r"))==NULL)fp3=fopen("game_sell.txt","w+");/*若无game_sell.txt文件,则建立一个新文件*/else{fp3=fopen("game_sell.txt","r");for(i=0;i<reg.s;i++)fread(&G[i],sizeof(struct _game),1,fp3);}/*若有game_sell.txt文件,则从中导入数据*/fclose(fp3);}void _search()/*查询函数*/{char a[40];int i,k=0;printf("请输入需要查询的游戏名称\n");scanf("%s",a);for(i=0;i<reg.b;i++){if(strcmp(a,game[i].name)==0){k=1;break;/*如果所查询的游戏名称与库存结果有相符,则令k=1,跳出,若无相符,则k保持为0*/}}if(k==0) printf("未找到该游戏!\n");else if(k==1) printf("NO.%.3d 游戏名称:%s 游戏类型:%s 库存数量:%d 价格:%dRMB\n",game[i].num,game[i].name,game[i].type,game[i].amount,gam e[i].cost);}void _register()/*游戏入库登记函数*/{char name[40],type[10],amount,cost;FILE *write1,*write2;int i;printf("请输入需要录入的游戏名称\n");scanf("%s",name);strcpy(game[reg.b].name,name);/*录入游戏名称*/printf("请输入游戏类型\n");scanf("%s",type);strcpy(game[reg.b].type,type); /*录入游戏类型*/printf("请输入入库数量\n");scanf("%d",&amount);game[reg.b].amount=amount; /*录入游戏数量*/printf("请输入价格\n");scanf("%d",&cost);game[reg.b].cost=cost; /*录入游戏价格*/game[reg.b].num=reg.b+1; /*自动记录当前游戏编号*/reg.b++;}void _delete()/*库存游戏删除函数*/{char a[40];int i=0,k=0;printf("请输入需要删除的游戏名称\n");scanf("%s",a);for(i=0;i<reg.b;i++){if(strcmp(a,game[i].name)==0){k=1;break;}}/*如果所查询要删除的游戏名称与库存结果有相符,则令k=1,跳出,若无相符,则k保持为0*/if(k==0) printf("未找到该游戏!\n");else if(k==1){/*k=1,则删除该游戏*/for(i;i<reg.b;i++){strcpy(game[i].name,game[i+1].name);strcpy(game[i].type,game[i+1].type);game[i].amount=game[i+1].amount;game[i].cost=game[i+1].cost;}/*如果所要的游戏名称与库存结果相符,删除数据,所有游戏数据都向前移一位*/reg.b--;/*令当前游戏序号b减1*/}}void _sell()/*卖出游戏登记函数*/{char name[40],amount,k=0,i;printf("请输入卖出游戏的名称\n");scanf("%s",name);for(i=0;i<reg.b;i++){if(strcmp(name,game[i].name)==0) k=1;/*搜索到相匹配的游戏,则k=1,否则k=0*/break;}if(k==0) printf("未找到该游戏!\n");else if(k==1){if(reg.s<10){printf("请输入卖出数量\n");/*若k=1,则可以卖出*/scanf("%d",&amount);game[i].amount=game[i].amount-amount;strcpy(G[reg.s].name,game[i].name);G[reg.s].amount=amount;G[reg.s].cost=game[i].cost;reg.s++;}else if(reg.s==10){for(i=0;i<reg.s;i++){strcpy(G[i].name,G[i+1].name);strcpy(G[i].type,G[i+1].type);G[i].amount=G[i+1].amount;G[i].cost=G[i+1].cost;}/*由于G只能存10组数据,所以当其超出时,所有数据向前移一位,使新数据覆盖老数据*/reg.s--;/*另s回到9,若登有新卖出数据,则其变为10,重复上一步骤*/printf("请输入卖出数量\n");scanf("%d",&amount);game[i].amount=game[i].amount-amount;strcpy(G[reg.s].name,game[i].name);/*将匹配的游戏名称复制到卖出记录的结构体*/G[reg.s].amount=amount;/*将匹配的游戏卖出数量复制到卖出记录的结构体*/G[reg.s].cost=game[i].cost;reg.s++;}}}void _sellsearch()/*卖出游戏查询函数*/{int i,sum=0;for(i=0;i<=reg.s;i++){printf("游戏名称:%s 卖出数量:%d 产品单价:%dRMB 卖出总价:%dRMB\n",G[i].name,G[i].amount,G[i].cost,G[i].cost*G[i].amount);}for(i=0;(i<=reg.s)||(i<10);i++){sum=sum+G[i].cost*G[i].amount;}/*计算卖出总金额(最近10次)*/printf("最近%d次共卖出货物总金额:%dRMB\n",reg.s,sum);}void save()/*存储功能*/{FILE *write1,*write2,*write3;int i;write1=fopen("game_list.txt","w");for(i=0;i<=reg.b;i++)fwrite(&game[i],sizeof(struct _game),1,write1);/*把库存信息存入文件*/fclose(write1);write2=fopen("game_sell.txt","w");for(i=0;i<=reg.s;i++)fwrite(&G[i],sizeof(struct _game),1,write2);/*把卖出信息存入文件*/fclose(write2);write3=fopen("game_reg.txt","w");fwrite(®,sizeof(struct _reg),1,write2);/*把b和s的信息存入文件*/fclose(write3);}void main(){int choice,i=0;start();/*载入数据*/printf("***********欢迎进入游戏入库卖出查询系统***********\n");begin:printf("—————————————————————————\n");printf("| 1、库存游戏查询 |\n");printf("| 2、新进游戏录入 |\n");printf("| 3、库存游戏删除 |\n"); printf("| 4、卖出游戏登记 |\n");printf("| 5、卖出游戏查询 |\n");printf("| 6、保存退出系统 |\n");printf("—————————————————————————\n"); scanf("%d",&choice);switch(choice){/*功能选择*/case 1:_search();goto begin;/*回到界面处,重新选择*/case 2:_register();goto begin; /*回到界面处,重新选择*/case 3:_delete();goto begin; /*回到界面处,重新选择*/case 4:_sell();goto begin; /*回到界面处,重新选择*/ case 5:_sellsearch();goto begin; /*回到界面处,重新选择*/ case 6:save();break; /*退出系统*/default:goto begin; /*回到界面处,重新选择*/ }}4、系统运行测试结果:第一次运行:第二次运行:运行结果如上。
北京交通大学《C语言程序设计(专)》在线作业一答案答案
![北京交通大学《C语言程序设计(专)》在线作业一答案答案](https://img.taocdn.com/s3/m/198576698f9951e79b89680203d8ce2f01666544.png)
北交《C语言程序设计(专)》在线作业二-0002试卷总分:100得分:100一、单选题(共10道试题,共40分)1.若有以下程序 ttinclude int a L ] =[2, 4, 6, 8) ; main () { int i ; int *p=a; for (i=0; i<4; i++) a [i]=*p;printf (级d\n〃,a [2]) ;}上面程序输出结果是6A.8C.4D. 2 答案:D.下列各数据类型不属于构造类型的是A.枚举型B.共用型C.结构型D.数组型答案:A2.假定以下程序经编译和连接后生成可执行文件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 答案:D4. C语言允许函数类型缺省定义,此时函数值隐含的类型是A.floatintB.longdouble 答案:B5.阅读以下程序及对程序功能的描述,其中正确的描述是ttinclude main (){ FILE *in, *out; char ch, infile [ 10] , outfile [ 10];printf(z,Enter the infile name: \n〃);scanf(infile); printf("Enter the outfile name: \;scanf (〃%s〃,outfile) ; if((in=fopen (infile, 〃r")) ==NULA.程序完成将磁盘文件的信息在屏幕上显示的功能B.程序完成将两个磁盘文件合二为一的功能C.程序完成将一个磁盘文件复制到另一个磁盘文件中D.程序完成将两个磁盘文件合并并在屏幕上输出答案:C.有以下程序:ttinclude union pw { int i; char ch[2] ;} a;main (){a. ch [0]= 13;a. ch [1] =0;printf (〃%d\n〃,a. i) ;} 程序的输出结果是A.1314B.208209答案:A.有如下程序:long fib (int n) { if (n>2) return (fib (nT)+fib (n-2)) ; else return (2) ;} main (){ printf (〃%d\n\fib (3)) ;} 该程序的输出结果是A.24B.68答案:B.函数rewind的作用是A.使文件位置指针重新返回文件的开始位置B.将文件位置指针指向文件中所要求的特定位置C.使文件位置指针指向文件的末尾D.使文件位置指针自动移至下一个字符位置答案:A7.设有int x=11;则表达式(x++*l/3)的值是A. 3B.411C.12答案:A10.以下程序的输出结果是void reverse (int a [] , int n) { inti, t; for ( i=0;i { t=a [i] ; a [i] =a [n-l-i] ;a [n-l-i1 =t;}}main (){ int b [10] ={1, 2, 3, 4, 5, 6, 7, 8, 9, 10} ; int i, s=0; reverse (b, 8) ; for (i=6; i<10; i++) s+=b [i] ; printf (〃 %d\n 〃,s);22A.1034B.30答案:A二、多选题(共10道试题,共40分)11.关于实参和形参的说法正确的是 oA.在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元B.实参可以是变量、常量或表达式C.实参与形参的类型应相同或赋值兼容D.实参变量对形参变量的数据传递是“值传递”答案:ABCD12 .下列描述正确的是A.由main函数及其参数argc和* argv□可以实现命令行方式B.使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中C.字符数组并不要求它的最后一个字符是‘ \0’D.‘A’和都是字符串常量答案:AC13.在缓冲文件系统中用于读写的函数有putchar ()A.fread ()rewind ()B.purw()答案:ABD14.下列说法不正确的是 oA.C程序由符号构成B.C程序由标识符构成C.C程序由函数构成D.C程序由C语句构成答案:ABD15.若定义:int a[2][3] {0, 2, 4, 6, 8, 10];以下描述正确的有A.* (a+l)为元素6的地址B.* (a[l]+l)的值为2C.** (a+1) +2 的值为 8D. a[0]与a相同答案:ACD16.以下叙述中正确的是。
工学院《VC++》第2次作业
![工学院《VC++》第2次作业](https://img.taocdn.com/s3/m/d83c0744852458fb770b56f6.png)
16
17
18 19
20
}; void main( ) {
二、分析下列程序的运行结果 1、
} (2)
A m(7,8); m.printa( );
2、
3、 哲理故事两则
#include<iostream.h>
一、有两个和尚他们分别住在相邻的两座山上的庙里。这两座
class Count{
山之间有一条溪,于是这两个和尚每天都会在同一时间下山去
启示:我们在公司领的薪水再多,那都是挑水。而把 握下班后的时间挖一口属于自己的井,培养自己另 一方面的实力,未来当我们年纪大了,体力拼不过 年轻人了,依然还是有水喝,而且还能喝得很悠闲。
A. 0 B. 1 C. 2 D. 任意
11. 类的析构函数可以带有( )个参数。
A. 0 B. 1 C. 2 D. 任意
12.下列的( )是引用调用。
A.形参是引用,实参是变量 B.形参和实参都是变量
C.形参是指针,实参是地址值 D.形参是数组名,实参是数组名
13.作用域运算符的功能是( )
A.给定作用域的大小;
B() { } B(int i,int j){a = i ;b = j;}
答题处
void printb( ){ cout<<a<<","<<b<<endl;}
一、单项选择题
};
class A{
1
2
3
4
5
private: Bc;
6
7
8
9
10
public: A(){ }
11
12
13 14
15
北京交通大学《C语言程序设计(专)》在线作业二答案答案
![北京交通大学《C语言程序设计(专)》在线作业二答案答案](https://img.taocdn.com/s3/m/3fb32a38a4e9856a561252d380eb6294dd8822fa.png)
北交《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++程序设计》在线作业二
![北航《C++程序设计》在线作业二](https://img.taocdn.com/s3/m/e226e8e2aeaad1f347933f04.png)
6. 下列关于构造函数说法不正确的是______。
A. 构造函数必须与类同名
B. 在构造函数中可以对类中的成员进行初始化
C. 构造函数可以省略不写
D. 构造函数必须有返回值
7. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择____.
A. 内联函数
B. 重载函数
10. 如果有char* ssl=“0123456789”,则,sizeof(ssl)的值是( )
A. 4
B. 10
C. 11
D. 40
11. 下列各个成员函数中,纯虚函数是( )
A. void fun(int)=0
B. virtual void fun(int)
C. virtual void fun(int){ }
D. virtual void fun(int)=0
12. 如要求在if后一对括号中的表达式,表示a不等于0的时候的值为"真",则能正确表示这一关系的表达式为
A. a<>0
B. !a
C. a=0
D. a
13. 下面有关重载函数的说法中正确的是______
A. 重载函数必须具有不同的返回值类型
B. 重载函数形参个数必须不同
C. 重载函数必须有不同的形参列表
D. 重载函数名可以不同
14. 假定变量a和pa定义为"double a[10], *pa=a;",要将12.35赋值给a中的下标为5的元素,不正确的语句是____.
A. pa[5]=12.35;
B. a[5]=12.35;
B. 正确
5. C++支持两种类型的多态性:编译时多态、运行时多态
奥鹏[北京交通大学]《C语言程序设计》在线作业二-0010满分参考3
![奥鹏[北京交通大学]《C语言程序设计》在线作业二-0010满分参考3](https://img.taocdn.com/s3/m/dbf85bf3aff8941ea76e58fafab069dc51224759.png)
《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。
黄宇《算法设计与分析》课后习题解析(二)精选全文
![黄宇《算法设计与分析》课后习题解析(二)精选全文](https://img.taocdn.com/s3/m/f5776d4f6fdb6f1aff00bed5b9f3f90f76c64df3.png)
黄宇《算法设计与分析》课后习题解析(⼆)第2章:从算法的视⾓重新审视数学的概念2.1:(向下取整)题⽬:请计算满⾜下⾯两个条件的实数的区间解析:根据向下取整的含义,令,讨论a的取值范围即可解答:令,则可得:即:故的取值区间为:2.2: (取整函数)题⽬:证明:对于任意整数,(提⽰:将n划分为)。
解析:根据提⽰将n进⾏划分,根据取整函数的定义⽤k表⽰取整函数,即可证明;证明如下:因为对于任意整数,可划分为,则:① ;② ;综上:对于任意整数,, 得证;2.3: (斐波拉契数列)对于斐波拉契数列,请证明:1)题⽬:是偶数当且仅当n能被3整除解析:由斐波拉契数列的递归定义式,容易联想到数学归纳法;证明如下:(采⽤数学归纳法)i)当n = 1,2,3时,依次为1,1,2,符合命题;ii)假设当(k>=1)时命题均成⽴,则:① 当n = 3k+1时,是奇数,成⽴;② 当n = 3k+2时,是奇数,成⽴;③ 当 n = 3(k+1)时,是偶数,成⽴;综上:归纳可得为偶数当且仅当,得证;2)题⽬:x x =1+a (0<a <1)x =1+a (0<a <1)⌊x ⌋=1⇒⌊x ⌋=21⌊x ⌋=2⌊1+a +22a ⌋=1a +22a <1⇒0<a <−21⇒1<a +1<⇒21<x <2x (1,)2n ≥1⌈log (n +1)⌉=⌊logn ⌋+12≤k n ≤2−k +11n ≥12≤k n ≤2−k +11k +1=⌈log (2+k 1)⌉≤⌈log (n +1)⌉≤⌈log (2)⌉=k +1k +1=>⌈log (n +1)⌉=k +1k =⌊log (2)⌋≤k ⌊logn ⌋≤⌊log (2−k +11)⌋=k =>⌊logn ⌋=k n ≥1⌈log (n +1)⌉=k +1=⌊logn ⌋+1F n F n n ≤3k F =n F +n −1F =n −2F +3k F =3k −1>F 3k +1F =n F +3k +1F =3k >F 3k +2F =n F +3k +2F =3k +1>F 3k +3F n 3∣n F −n 2F F =n +1n −1(−1)n +1解析:同1)理,容易联想到数学归纳法证明如下:(采⽤数学归纳法)i)当n = 2时,, 易知成⽴;ii)假设当 n = k 时命题成⽴,① 若k = 2m, 则,当n = k+1 = 2m+1时,要证命题成⽴,即证: => ,代⼊递推式, 得:, 易知是恒等式,故命题成⽴;②当 k=2m+1时,同①理可证命题成⽴;综上:归纳可得,得证;2.4:(完美⼆叉树)给定⼀棵完美⼆叉树,记其节点数为,⾼度为,叶节点数为,内部节点数为1)题⽬:给定上述4个量中的任意⼀个,请推导出其他3个量解析:根据完美⼆叉树的结构特点易得解答:(仅以已知⾼度h推导其他三个量为例,其余同理)已知⾼度为h,可得:节点数:叶节点数:内部节点数:2)题⽬:请计算完美⼆叉树任意⼀层的节点个数:① 如果任意指定深度为的⼀层节点,请计算该层节点个数;② 如果任意指定⾼度为的⼀层节点,请计算该层节点个数;解析:根据完美⼆叉树的结构特点易得(注意节点深度和节点⾼度是互补的,相加为树⾼)解答:① ; ② ;2.5: (⼆叉树的性质)对于⼀棵⾮空的⼆叉树T,记其中叶节点的个数为,有1个⼦节点的节点个数为,有两个⼦节点的节点个数为1)题⽬:如果T是⼀棵2-tree,请证明。
交通大学C语言第二次作业教学内容
![交通大学C语言第二次作业教学内容](https://img.taocdn.com/s3/m/a9aadaaabed5b9f3f80f1c5f.png)
交通大学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}}其中,正确的语句包括()。
15秋北航《C语言程序设计》在线作业二答案
![15秋北航《C语言程序设计》在线作业二答案](https://img.taocdn.com/s3/m/67b13e7fb84ae45c3b358cb2.png)
北航《语言程序设计》在线作业二单选题判断题一、单选题(共 10 道试题,共 40 分。
)1. 关于voi 指针,下列说法正确的是____.. voi 指针就是未指向任何数据的指针. voi 指针就是已定义而未初始化的指针. 指向任何类型数据的指针可直接赋值给一个voi 指针. voi 指针值可直接赋给一个非voi 指针-----------------选择:2. 设有定义语句“hr s[]=”123”;”,则表达式“s[3]”的值是. 1'. '3'. '\0'. 存在语法错误-----------------选择:3. 不合法的八进制数是( ). 0. 028. 077. 01-----------------选择:4. 设x,y为flot型变量,则下列选项中,合法的赋值语句是. ++x. y=flot(3). y=(x%2)/10. *x=10-----------------选择:5. 以下对语言函数的有关描述中,正确的是:______。
(). 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参. 函数既可以嵌套定义又可以递归调用. 函数必须有返回值,否则不能使用函数. 程序中有调用关系的所有函数必须放在同一个源程序文件中-----------------选择:6. 在语言中,形参的缺省存储类型是( ). uto. register. stti. extern-----------------选择:7. 下面的for语句______。
for(x=0,y=0;(y!=123)&&(x<4);x++);(). 是无限循环. 循环次数不定. 循环执行四次. 循环执行三次-----------------选择:8. 函数原型语句正确的是( ). int Funtion(voi );. voi Funtion (int);. int Funtion();. voi int(oule );-----------------选择:9. 关于函数的参数在调用和返回过程中的值,下列说法哪个是正确的(). 实参不会改变. 实参可能会改变. 如果是指针,肯定不会改变. 如果不是指针,可能会改变-----------------选择:10. 函数形参与实参之间的传递是“值传递”,以下叙述正确的是( ). 实参和与其对应的形参共用一个存储单元. 实参和与其对应的形参各占用独立的存储单元. 当实参和与其对应的形参同名时才共用一个存储单元. 形参是形式的,不占用存储单元-----------------选择:北航《语言程序设计》在线作业二单选题判断题二、判断题(共 15 道试题,共 60 分。
免费在线作业答案15秋北交《C语言程序设计》在线作业二满分答案
![免费在线作业答案15秋北交《C语言程序设计》在线作业二满分答案](https://img.taocdn.com/s3/m/f3cee6c13186bceb19e8bb26.png)
15秋北交《C语言程序设计》在线作业二满分答案15秋北交《C语言程序设计》在线作业二满分答案一、单选题(共 15 道试题,共 30 分。
)1. 已知int m,n,i=2;执行语句m=-i++;n=++i;后,m和n的值分别是_____。
A. -3 4B. -2 4C. -3 3D. -2 3正确答案:B2. 下面说法错误的是______。
A. 整型变量可以存放字符型数据B. 字符型变量可以存放任意整型常量的值C语言程序设计报告C. 变量必须限定以后使用D. 字符串的长度不等于它占的字节数正确答案:B3. 若w=1,x=2,y=3,z=4;,则条件表达式w>x?w:y<z?y:z的结果为______。
()A. 4B. 3C. 2D. 1正确答案:B4. 以下说法下确的是_____。
A. C语言程序总是从第一个的函数开始执行B. 在C语言程序中,要调用的函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分正确答案:C5. 数组int**a[3][4]占据多大空间A. 64B. 12C. 48D. 128正确答案:C6. 二进制语言是属于面向_____的语言。
A. 机器B. 过程C. 问题D. 对象正确答案:A7. 不合法的八进制数是()A. 0B. 028C. 077正确答案:B8. 合法的数组定义是________。
A. int a[]="string";B. int a[5]={0,1,2,3,4,5};C. vhst s="string";D. char a[]={0,1,2,3,4,5};正确答案:D9. 若有输入语句scanf( "%d%d%d", &x,&y,&z);则不能使x值为5, y值为6, z值为7的输入是______。
第二次作业 2
![第二次作业 2](https://img.taocdn.com/s3/m/74c389f2524de518964b7d2f.png)
基础部分1.#include<iostream>using namespace std;int main(){int input;cout<<"which number do you want to test?\n";cin>>input;if(input%2)cout<<"number"<<input<<'\t'<<"is odd.";elsecout<<"number"<<input<<'\t'<<"is even.";return 0;}input%2代表的意思是输入的数除以2的余数为非零的就输出。
2.#include<iostream>#include<cmath>using namespace std;int main(){double a,b,c;double delta,x1,x2;int sign;cout<<"一元二次方程a*x*x+b*x+c=0\n";cout<<"输入3个系数a(a!=0),b,c:"<<endl;cin>>a>>b>>c;cout<<"a="<<a<<'\t'<<"b="<<b<<'\t'<<"c="<<c<<endl;if(a==0){cout<<"二次项系数为零,不是一元二次方程"<<endl;return 0;}delta=b*b-4*a*c;if(delta==0){cout<<"方程有相同的两个实根:"<<endl;cout<<"x1=x2="<<-b/(2*a)<<endl;}else{if(delta>0) sign=-1;else sign=0;delta=sqrt(fabs(delta));x1=-b/(2*a);x2=delta/(2*a);if(sign){cout<<"方程有两个不同的实根:"<<endl;cout<<"x1="<<x1+x2<<'\t'<<"x2="<<x1-x2<<endl;} else{//delta<0cout<<"方程无实根!有两个不同的复根:"<<endl;cout<<"x1="<<x1<<"+i"<<x2<<'\t'<<"x2="<<x1<<"-i"<<x2<<endl;} }return 0;}3.#include<iostream>using namespace std;int main(){int n,i;double result=0;cout<<"请输入正整数:"<<endl;cin>>n;if(n<1){cout<<"输入错误!"<<endl;return 1;}result=1;for(i=2;i<=n;i++)result*=i;cout<<result<<endl;return 0;}4.法一:#include<iostream>using namespace std;int main(){double remark;cout<<"请输入分数:"<<endl;cin>>remark;if(remark>90)cout<<"A Grade"<<endl;else if(remark>80&&remark<=90)cout<<"B Grade"<<endl;else if(remark>70&&remark<=80)cout<<"C Grade"<<endl;else if(remark>60&&remark<=70)cout<<"D Grade"<<endl;elsecout<<"Not Passed"<<endl;return 0;}法二:#include<iostream>using namespace std;int main(){int remark;cout<<"请输入分数:"<<endl;cin>>remark;switch(remark/10){case 10:case 9:cout<<"A Grade";break;case 8:cout<<"B Grade";break;case 7:cout<<"C Grade";break;case 6:cout<<"D Grade";break;default:cout<<"Not Passed";return 0;}}5.#include<iostream>using namespace std;int main(){int i;cout<<"请输入一个数:";cin>>i;if((i%3==0)&(i%7!=0))cout<<"是3的倍数,不是7的倍数";else if((i%3!=0)&(i%7==0))cout<<"是7的倍数,不是3的倍数";else if((i%3==0)&(i%7==0))cout<<"是3的倍数,也是7的倍数";elsecout<<"既不是3的倍数,也不是7的倍数"; return 0;}6.#include<iostream>using namespace std;int main(){int year,month,day,k=0,i=0;int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};cout<<"请输入年月日:"<<endl;cin>>year>>month>>day;i=month-1;if(year%4==0&&year%100!=0||year%400==0){if(i>1){for( ;1>1;i--)k=k+a[i]+1;cout<<"这天是这一年的第"<<k+day<<"天"<<endl;}elsek=k+a[i];cout<<"这天是这一年的第"<<k+day<<"天"<<endl;}elsefor( ;i>=0;i--)k=k+a[i];cout<<"这天是这一年的第"<<k+day<<"天"<<endl;return 0;}7.#include<iostream>using namespace std;int main(){int a[1000],max=0,min=0,s=0,i,k=0;for(i=0;;i++){ cin>>a[i];if(a[i]==-1)break;s=s+a[i];if(max>=a[i]){max=max;min=a[i];}else{min=max;max=a[i];}}k=s/i;cout<<"最大数是:"<<max<<'\t'<<"最小数是:"<<min<<endl;cout<<"平均数是:"<<k<<endl;return 0;}8.#include<iostream>#include<cmath>using namespace std;int main(){int a,n,i,b,s,t=0;s=0;b=0;cout<<"输入两个数a,n;cin>>a>>n;for(i=1;i<=n;i++){s=b;b=s*10+a;t=t+b;}cout<<t<<endl;return 0;}9.#include<iostream>#include<cmath>using namespace std;void main(){int a1,a2,a3,a,b,i;for(i=100;i<1000;i++){a=i;a1=a%10;a2=(a/10)%10;a3=(a/100)%10;b=(a1*a1*a1)+(a2*a2*a2)+(a3*a3*a3); if(b==i)cout<<i<<"\n";}}提高部分1.#include<iostreamusing namespace std; int main(){int c;int nwhite,nother,nDigit;nwhite=nother=nDigit=0;c=cin.get();while(c!=EOF){switch(c){case '0':case '1':case '2':case '3':case '4':case '5':case '6':case '7':case '8':case '9':nDigit++;break;case '':case '\n':case '\t':nwhite++;break;default:nother++;break;}c=cin.get();}cout<<"Digits="<<'\t'<<nDigit<<'\n';cout<<"white space="<<'\t'<<nwhite<<'\n'; cout<<"other chars="<<'\t'<<nother<<'\n'; return 0;}2.3.#include<iostream>#include<cmath>using namespace std;const max=30;double a=2,b=3,ep=0.001;int main(){int maxit,j;double x1,x2,temp,f1,f2,dx;f1=a*log10(a)-1;f2=b*log10(b)-1;if(f1*f2>=0){cout<<"初值错!"<<endl;return 0;}if(fabs(f1)<fabs(f2)){x1=a;x2=b;}else{x1=b;x2=a;temp=f1;f1=f2;f2=temp;}for(j=1;j<=max;j++){dx=(x1-x2)*f2/(f2-f1);cout<<dx;temp=x2;x2=x2+dx;x1=temp;f1=f2;f2=x2*log10(x2)-1;cout<<'\t'<<x2<<endl;if((fabs(dx)<ep)||(f2==0)){cout<<"方程的根为:"<<x2<<endl;return 0;}}cout<<"迭代次数过多!"<<endl;return 1;}4.#include<iostream>using namespace std;int main(){int i,j,k,l,m,count=0;for(i=1;i<=4;i++){for(j=0;j<=4;j++){if(j==i)continue;for(k=0;k<=4;k++){if(k==3||k==i||k==j)continue;for(l=0;l<=4;l++){if(l==3||l==i||l==j||l==k)continue;for(m=0;m<=4;m++){if(m==i||m==j||m==k||m==l)continue;cout<<i<<j<<k<<l<<m<<'\t';count++;if(count%5==0)cout<<endl;}}}}} return 0;}。
C语言第二次大作业
![C语言第二次大作业](https://img.taocdn.com/s3/m/f795d322ed630b1c59eeb58b.png)
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★C语言第二次大作业班级:机电***学号:*******姓名:*******★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★一、题目1、基于VC6编写一个简易菜单驱动(简易的闪烁菜单)的程序,实现求解三角形面积、一元二次方程根、判断素数、退出四个功能。
要求界面友好,光标控制(光标所在行对应文字闪烁显示),按回车键进入相应的功能,其中求解三角形面积功能中有一个子菜单以实现三种不同解法并可以返回主菜单。
至少定义5个函数,可适当加入一些趣味函数提高趣味性。
2、基于KEIL编写一个控制单片机实验系统V2数码管动态显示本人学号的程序。
应用设想:某些店面门口可以动态显示订餐、订货电话,为消费者提供便利。
当然,点阵显示效果更好,不仅可以显示数字还可以显示字母、文字。
二、题目分析及算法1、该题要求实现光标控制的闪烁菜单,并且有一个子菜单。
该题主要是对模块化程序设计进行训练。
菜单实现四种不同的功能可使用switch-case函数实现(本程序的选择分支结构均可使用该函数),为使界面友好可定义一个光标定位函数使得光标先到相应行和列再执行程序语句。
闪烁菜单可在静态菜单的基础上根据定义好的静态菜单返回的不同的函数值,巧妙结合延时函数间歇性输出菜单选项,实现闪烁。
编程时应注意数据类型(全局变量、局部变量、静态变量(关键字Static))的使用。
此外还有return、break,continue、exit()、while语句、if 语句、kbhit()、getch()等函数的使用。
求解三角形面积算法:要求实现三种不同解法(已知三边(首先要判断输入的三边长能否构成三角形)、已知两边及其夹角,已知底和对应的高)。
解法一要注意函数sin()的用法!判断素数算法: 素数(质数)指在大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数(也可定义为只有1和本身两个因数的数)。
北航14秋《C++程序设计》在线作业二答案
![北航14秋《C++程序设计》在线作业二答案](https://img.taocdn.com/s3/m/636d7727647d27284b7351f0.png)
北航《C++程序设计》在线作业二单选题一、单选题(共25 道试题,共100 分。
)1. 在下列运算符中,优先级最低的是A. ||B. !=C. <D. +-----------------选择:A2. 设”int a=15,b=26;”,则”cout<<(a,b);”的输出结果是____A. 15B. 26,15C. 15,26D. 26-----------------选择:D3. 在c++语言中,main函数默认返回一个_____类型的值A. intB. floatC. charD. void-----------------选择:A4. C++语言的跳转语句中,对于break和continue说法正确的是A. break语句只应用于循环体中B. continue语句只应用于循环体中C. break是无条件跳转语句,continue不是D. break和continue的跳转范围不够明确,容易产生问题-----------------选择:B5. 考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调用的是A. test(5);B. test(5,8);C. test(6,"#");D. test(0,0,"*");-----------------选择:C6. 如果变量x,y已经正确定义,下列语句哪一项不能正确将x,y的值进行交换A. x=x+y,y=x-y,x=x-yB. t=x,x=y,y=tC. t=y,y=x,x=tD. x=t,t=y,y=x-----------------选择:D7. 执行语句序列int x; cin>>x; if(x>250) cout<<‘X‘; if(x<250) cout<<‘Y‘; else cout<<。
2021年北航《C++程序设计》在线作业二辅导资料
![2021年北航《C++程序设计》在线作业二辅导资料](https://img.taocdn.com/s3/m/793db73d195f312b3069a509.png)
1. 下列对基类和派生类关系的描述中,错误的是______。
()A. 派生类是基类的具体化B. 派生类是基类的子集C. 派生类是基类定义的延续D. 派生类是基类的组合该题参考选项是:B 满分:4 分2. 已知字符'b'的ASCII码为98,语句printf("%d,%c",'b','b'+1 );的输出为()A. 98,bB. 语句不合法C. 98,99D. 98,c该题参考选项是:D 满分:4 分3. 当说明一个结构变量时,系统分配给它的内存是()。
A. 各成员所需内存量的总和B. 结构中第一个成员所需内存量C. 成员中占内存量最大的成员所需的容量D. 结构中最后一个成员所需内存量该题参考选项是:A 满分:4 分4. 下列函数中,可以是虚函数的是______。
()A. 自定义的构造函数B. 拷贝构造函数C. 静态成员函数D. 析构函数该题参考选项是:D 满分:4 分5. 在下面的一维数组定义中,____有语法错误。
A. int a[ ] = {1,2,3};B. int a[10] = {0};C. int a[ ];D. int a[5];该题参考选项是:C 满分:4 分6. 下列选项中,全部都是C++关键字的选项为______。
A. while IF staticB. sizeof case externC. switch float integerD. break char go该题参考选项是:B 满分:4 分7. 表达式9!=10的值为A. 非零值B. trueC. 0D. 1该题参考选项是:D 满分:4 分8. C++程序基本单位是______。
A. 函数B. 语句C. 字符D. 数据该题参考选项是:A 满分:4 分9. 函数重载体现了面向对象的()A. 封装性B. 多态性C. 继承性D. 抽象性该题参考选项是:B 满分:4 分10. 在C++中,要实现动态联编,必须使用______调用虚函数。
大学生“计算机应用基础”教学探索
![大学生“计算机应用基础”教学探索](https://img.taocdn.com/s3/m/4a8d8e32b6360b4c2e3f5727a5e9856a561226f4.png)
熟练掌握好“计算机应用基础”课程知识,可为学生今后进一步学习和工作打下良好的基础,具有非常重要而深远的意义。
随着计算机技术的迅猛发展及在全社会的普及,计算机已成为人们日常学习和工作不可或缺的有力工具,学好“计算机应用基础”课程,对学生后续计算机技能的学习和应用,以及计算机知识体系结构的搭建和计算机应用能力的培养有着现实而深远的意义。
大学各个专业都需要学生掌握计算机基础知识和基本操作技能,学好“计算机应用基础”课程,对学生今后进一步的专业学习有非常大的帮助。
学生来自全国不同地区,计算机基础水平参差不齐,因此,教育面临着极大的机遇和挑战。
在教学活动中采取有效的教学方法、教学手段,着重提高学生的计算机文化基础知识,加强计算机基本技能训练,可为学生今后的专业学习打下良好的基础,有效地培养学生严谨的科学态度和创造性思维,提高学生计算机知识的综合运用实践能力。
笔者在“计算机应用基础”课程教学过程中,做了有益的尝试和积极探索,教学效果得到了学生的肯定和好评。
本文结合笔者的具体教学谈谈体会。
一、帮助学生树立学好计算机的自信心,培养学生的学习兴趣我校“计算机应用基础”课程设置分为两部分,第一学期为计算机应用基础(上),教学内容主要有计算机基础知识、计算机网络基础知识和办公自动化软件OFFICE的使用,共32学时;第二学期为计算机应用基础(下),教学内容为程序设计基础,共32学时。
(一)用榜样的力量,帮助学生树立学好计算机的自信心学生来自全国各个不同地区,计算机基础水平参差不齐,在教学过程中帮助其树立学好计算机的自信心尤其重要,这是学生学好“计算机应用基础”课程的前提和保证。
自信心是一个人成长所必需的良好的心理素质和健康的个性品质,它是反映一个人对自己是否有能力成功地完成某项活动的心理特征,是人们内在的精神力量和精神源泉,是人们前进的动力。
人在前进途中会遇到各种各样的艰难险阻,有了自信心,就能鼓舞人们去克服前进途中的各种困难,具有相信自己有能力实现目标的坚强的心理倾向,是推动人们进行活动的一种强大的力量,也是人们成功完成预期目标的有力保证,它是一种积极健康向上的心理状态。
第二次作业的具体要求
![第二次作业的具体要求](https://img.taocdn.com/s3/m/d30a97ef25c52cc58bd6bef8.png)
第二次作业作业目的:学会使用一种 C 编译器(例如:DevCpp 编译器)编写和运行一个 C 程序。
也可以使用在线网页版的 C 编译器编写第一个 C 程序。
理解常量和变量,会定义变量,会使用常量和变量。
理解 C 语言的算术运算规则里的同类型数据运算,得到的结果与运算数据的类型一致。
不同类型数据运算,可以有两种类型趋同的做法,一个是类型自动转换,另一种是使用类型名进行强制转换。
学会编写 C 语言程序进行简单的运算处理。
作业内容:熟悉如何编辑一个 C 语言源程序,了解如何将其通过编译和连接(大部分C 编译器集成开发环境是将二者联合为一个操作动作),转换为可执行程序,并运行。
程序纠错以下是初学编程的学生经常出错或马虎的地方,在此展示出来,也是要提醒大家格外注意这些地方,不要反复地出现类似的低级错误。
为了测试一下你是否留心过这些问题,不妨你先读一读或在计算机上运行下面每一个程序,看看能否自己找出每个程序中的错误,改正后,让每个程序都可以正常执行。
建立一个计算两个实数相减的减法程序。
#include int main(void) { float x,y; printf("请输入被减数和减数:");第二次作业的具体要求PAGE 2 / 6 scanf("%f%f,&x,&y"); printf("\n %f - %f=%f\n\n",x,y,x-y); return 0; } 建立计算一个数的平方值的程序。
#include int main(void) { float x; printf(" 请输入一个数:"); scanf("%f",x); printf("\n %f 的平方值是 %f \n",x,x*x); printf("\n\n 程序结束。
\n"); return 0; } 建立一个两数相乘的乘法程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言第二次作业.要求写出:一、实验目的:1.了解C语言表示逻辑量的方法。
2.学会正确使用逻辑运算符和逻辑表达式。
3.熟练掌握if语句的使用。
4.熟练掌握多分支选择语句—switch语句。
5.结合程序掌握一些简单的算法。
6.进一步学习调试程序的方法。
二、实验内容:(程序代码及调试结果)1.某年如果能被4整除,但不能被100整除,或者能被400整除的年是闰年。
判断从键盘输入的年份是否为闰年。
#include<stdio.h>int main(){int year;printf("请输入年份:\n");scanf("%d",&year);if ((year%4==0&&year%100!=0)||(year%400==0))printf("%d是闰年\n",year);elseprintf("%d不是闰年\n",year);return 0;}2、某个自动加油站有‘a’,‘b’,‘c’三种汽油品种,单价分别为6.92,7.37,7.64(元/公升),也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠,请编程序针对用户输入加油量m,汽油品种y和服务类型z(‘f’—自动加,‘m’—自己加,‘e’—协助加),(注:‘f’—自动加无优惠),计算应付款pay。
(请用多分支选择switch语句)。
#include<stdio.h>int main(){float p,n,d,pay;char y,z;printf("请输入服务方式:\n");printf("请输入汽油品种:\n");scanf("%c %c",&z,&y);switch(z){case 'f':d=1.0;break;case 'm':d=0.95;break;case 'e':d=0.9;break;default:printf("Unknown operator\n");break;}switch(y){case 'a':p=6.92;break;case 'b':p=7.37;break;case 'c':p=7.64;break;default:printf("Unknown operator\n");break;}printf("请输入加油数量:\n");scanf("%f",&n);pay=p*n*d;printf("应付金额:%5.2f\n",pay);return 0;}3、输入三角形三边,判断该三角形是什么三角形(等边,等腰,普通和直角)#include<stdio.h>int main(){int a,b,c;printf("请输入三角形三边:\n");scanf("%d %d %d",&a,&b,&c);if(((a+b)<c)||((b+c)<a)||((a+c)<b))printf("不能构成三角形\n");else if (a==b&&a==c)printf("三角形是等边三角形\n");else if((a==b)||(a==c)||(b==c))printf("三角形是等腰三角形\n");else if(((a*a+b*b)==(c*c))||((c*c+b*b)==(a*a))||((a*a+c*c)==(b*b)))printf("三角形是直角三角形\n");else printf("三角形是普通三角形\n");return 0;}4. 编写一个菜单程序,输入1~3以进入相应的选择项。
(请用switch 语句)1、FindNum2、Diamond3、Goodbye!Input 1-3:#include<stdio.h>int main(){int a,b,c;printf("请输入:\n");scanf("%d",&a);switch(a){case 1:printf("1、FindNum\n");break;case 2:printf("2、Diamond\n");break;case 3:printf("3、Goodbye!\n");break;default:printf("Unknown operator\n");break;}return 0;}5.输入4个整数,要求按由小到大的顺序输出#include<stdio.h>int main(){int a,b,c,d,t;printf("请输入四个数:\n");scanf("%d,%d,%d,%d",&a,&b,&c,&d);if(a>b) {t=a;a=b;b=t;}if(a>c) {t=a;a=c;c=t;}if(a>d) {t=a;a=d;d=t;}if(b>c) {t=b;b=c;c=t;}if(b>d) {t=b;b=d;d=t;}if(c>d) {t=c;c=d;d=t;}printf("由小到大%d,%d,%d,%d\n ",a,b,c,d); return 0;}6.求一元二次方程ax2+bx+c=0的根。
当b2-4ac>0为不相等的两实根,当b2-4ac=0时为两相等的实根,当b2-4ac<0为两复根。
#include<stdio.h>#include<math.h>int main(){float a,b,c,t;printf("请输入方程系数:\n");scanf("%f,%f,%f",&a,&b,&c);t=b*b-4*a*c;if(t>0){printf("x1=%.2f\n",((-b+sqrt(t))/(2*a)));printf("x2=%.2f\n",((-b-sqrt(t))/(2*a)));}else if (t==0){printf("x1=x2=%.2f\n",(-b)/(2*a));}else{printf("x1=%.2f+%.2fi\n",-b/(2*a),sqrt(4*a*c-b*b)/(2*a));printf("x2=%.2f-%.2fi\n",-b/(2*a),sqrt(4*a*c-b*b)/(2*a)); }return 0;}7、编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和#include<stdio.h>int main(){int a,b;printf("请输入a,b:\n");scanf("%d,%d",&a,&b);if((a*a+b*b)>100)printf("百位数字为%d\n",(a*a+b*b)/100);elseprintf("a+b=%d\n",a+b);return 0;}8、有三个整数a,b,c,由键盘输入,输出其中最大的数。
#include <stdio.h>int main(){ int a,b,c,t,max;printf("请输入a,b,c:");scanf("%d,%d,%d",&a,&b,&c);t=(a>b)?a:b;max=(t>c)?t:c;printf("%d,%d,%d 中最大数是%d\n",a,b,c,max); return 0;}9、有一个函数:y=写程序,输入x 的值,输出y 相应的值。
#include<stdio.h>int main(){int x;printf("请输入x:\n");scanf("%d",&x);if(x<1)printf("y=%d\n",x);else if(1<=x&&x<10)printf("y=%d\n",(2*x-1));x (x<1) 2x-1 (1<=x<1)3x-11(x>=10)elseprintf("y=%d\n",(3*x-11)); return 0;}。