福建师范大学C语言第一次作业及答案
C语言程序设计-第一次作业的答案

printf("y=%d\n",y);
}
输出结果为:
y=21.
Press any key to continue
n
n--
y
10
1
10
3
9
9
5
8
8
7
7
7
9
6
6
11
5
5
13
4
4
15
3
3
17
2
2
19
1
1
21
0
0
-1
y=21
5.#include<stdio.h>
1 1 2 3 5
8 13 21 34 55
Press any key to continue
i
f
f1
f2
i%5
1
1
1 1(不换行)
3
2
1
2
2
2(不换行)
4
3
2
3
4
3(不换行)
5
5
3
5
0
5(换行)
6
8
5
8
1
8(不பைடு நூலகம்行)
7
13
8
13
2
13(不换行)
8
21
13
21
3
21(不换行)
9
34
21
34
i
s
i%2
i%3
s+=i
1
大一C语言选择题及答案

第1章C语言程序设计概述一.选择题1.以下叙述中正确的是(A)A.C语言程序中注释部分可以出现在程序中任意合适的地方B.花括号“{”和“}”只能作为函数体的定界符C.构成C语言程序的基本单位是函数,所有函数名都可以由用户命名D.分号是C语言语句之间的分隔符,不是语句的一部分2.以下叙述中错误的是(A)A.用户所定义的标识符允许使用关键字B.用户所定义的标识符应尽量做到“见名知意”C.用户所定义的标识符必须以字母或下划线开头D.用户所定义的标识符中,大,小写字母代表不同标识3.下列关于C语言用户标识符的叙述中正确的是(B)A.用户标识符中可以出现下划线和中划线(减号)B.用户标识符中不可以出现中划线,但可以出现下划线C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头4.以下关于C语言标识符的描述中,正确的是(D)A.标识符可以由汉子组成B.标识符只能以字母开头C.关键字可以作为用户标识符D.Area与area是不同的标识符5.以下正确叙述是(C)A.在C语言中,main函数必须位于文件的开头B.C语言每行只能写一条语句C.C语言本身没有输入,输出语句D.对一个C语言进行编译预处理时,可检查宏定义的语法错误6.下面说法正确的是(C)A.C程序由符号构成B.C程序由标识符构成C.C程序由函数构成D.C程序由C语句构成7.以下叙述不正确的是(D)A.一个C源程序可以由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句后面8.C语言规定:在一个源程序中,main函数的位置可以任意9.以下不能定义为用户标识符的是(D)A.scanfB.V oidC._3comD.int10.以下不合法的用户标识符是(C)A。
j2_KEY B.Double C.4d D._8_11.下列四组选项中,均不是C语言关键字的是(A)A.define IF typeB.getc char printfC.include scanf caseD.while go pow12.以下不能定义为用户标识符的是(D)A.MainB._0C._intD.sizeof13.以下不合法的用户标识符是(C)A。
C语言 (福师大考的)

一、编程的第二道题1. 完成函数fun(int a【】,int n)实现将一维数组a个元素在数组中循环右移n个位置例数组a个元素为 6 7 8 9 0参数n=2时循环右移2个位置后数组个元素为:9 0 6 7 8#include <stdio.h>#include <conio.h>#define COL 5void fun(int a[],int n){/** int i,b[COL];for(i=0;i<COL;i++){if (i-n<0)b[i]=a[COL-n+i];elseb[i]=a[i-n];}for (i=0;i<COL;i++)a[i]=b[i];/**/}void main(){ int arra[COL] = {6,7,8,9,0};int i,j,n;printf("The array a is:\n");for(i=0; i<COL; i++)printf("%5d", arra[i]);printf("\n");printf("Sites of moving(n>0): ");scanf("%d",&n);fun(arra,n);printf("Now The array a is:\n");for(i=0; i<COL; i++)printf("%5d", arra[i]);printf("\n");getch();}2.把数组里基数的并且尾巴是3的放在一个数组,然后把偶数的与后一个求平均值放在另一个数组#include <stdio.h>#include <conio.h>#define N 10void fun(int a[]){/**/int b[N],j,m=0,n=0;float c[N];for (j=0;j<N;j++){if ((a[j]%2!=0)&&(a[j]%10==3))b[m++]=a[j];if (a[j]%2==0)c[n++]=(a[j]+a[j+1])/2.0;}for (j=0;j<m;j++)printf("%3d",b[j]);printf("\n");for (j=0;j<n;j++)printf("%.2f",c[j]);/**/}void main(){int a[N],i;printf("The array a is:\n");for(i=0;i<N;i++)scanf("%d",&a[i]);fun(a);getch();}3.以x为首项,d为公差的等差数列n项,吧n项赋值给数组a【】再求n项和。
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++语言程序设计》在线作业1答案

福师《C++语言程序设计》在线作业1答案福师《C++语言程序设计》在线作业1一、单选题(共30 道试题,共60 分。
)V 1. 函数重载体现了面向对象的(b)A. 封装性B. 多态性C. 继承性D. 抽象性满分:2 分2. 已知下列语句中的x和y都是int型变量,其中不正确的语句是(d)A. y+=++x;B. ++x+=y;C. y=x++;D. x++=y;满分:2 分3. 循环体至少被执行一次的语句为(c )A. for循环B. while循环C. do循环D. 任一种循环满分:2 分4. 下列对引用的陈述中,不正确的是(c )A. 每一个引用都是其所引用对象的别名,因此必须初始化B. 形式上针对引用的操作实际上作用于它所引用的对象C. 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行D. 不需要单独为引用分配存储空间满分:2 分5. 关于异常和C++提供的异常处理机制。
不正确的说法是(d)A. 若程序员预见到程序的异常,则一定可以通过修改程序代码来避免异常出现B. 使用dyname cast操作符可能会发生异常C. 异常可以用catch捕获处理D. 异常可以是对象,也可以是普通函数满分:2 分6. 已知:print( )函数是一个类的常成员函数,且无返回值。
在下列表示中,正确的是(a)A. void print( ) const;B. const void print( );C. void print( );D. void print(const);满分:2 分7. 在C++语言中,为了使得类中的某些数据成员及某些成员函数的返回值能取任意类型,应使用(b )A. 类B. 类模板C. 抽象类D. 虚基类满分:2 分8. 下列各个成员函数中,纯虚函数是(d)A. void fun(int)=0B. virtual void fun(int)C. virtual void fun(int){}D. virtual void fun(int)=0满分:2 分9. 下列函数中,可以为虚函数的是(d )A. 自定义的构造函数B. 拷贝构造函数C. 静态成员函数D. 析构函数满分:2 分10. 若x,y,z均被定义为整数,则下列表达式终能正确表达代数式1/(x*y*z)的是(b)A. 1/x*y*zB. 1.0/(x*y*z)C. 1/(x*y*z)D. 1/x/y/(float)z满分:2 分11. 下面不能正确表示a*b/(c*d)的表达式是(a )A. (a*b)/c*dB. a*b/(c*d)C. a/c/d*bD. a*b/c/d满分:2 分12. 如果有char* ssl=“0123456789”,则,sizeof(ssl)的值是(a)A. 4B. 10C. 11D. 40满分:2 分13. 如果变量x,y已经正确定义,下列语句哪一项不能正确将x,y 的值进行交换(d)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满分:2 分14. 下列哪项不是面向对象程序设计的主要特征(d)A. 封装B. 继承C. 多态D. 结构满分:2 分15. 在下列运算符中,优先级最低的是(a )A. ||B. !=C. <D. +满分:2 分16. 在一个源文件中定义的全局变量的作用域为(c )A. 本程序的全部范围B. 本函数的全部范围C. 从定义该变量的位置开始到本文件结束D. 以上说法都不正确满分:2 分17. 下列关于函数模板和模板函数的描述,错误的是(d)A. 函数模板是一组函数的模板B. 模板函数是一个实在的函数C. 函数模板是定义重载函数的一种工具D. 模板函数在编译时不生成可执行代码满分:2 分18. 下面程序的结果是什么?Int i=3,j=4;i?i++:j++;printf (“%d %d\n”,i,j);(b )A. 3 3B. 4 4C. 3 4D. 4 3满分:2 分19. 已知字符'b'的ASCII码为98,语句printf("%d,%c",'b','b'+1 );的输出为(d)A. 98,bB. 语句不合法C. 98,99D. 98,c满分:2 分20. 派生类公有继承基类时,基类中的所有公有成员成为派生类的______。
2022秋计本福师《C语言程序设计》在线作业1答案1

2022秋计本福师《C语言程序设计》在线作业1答案1福师《C++语言程序设计》在线作业一试卷总分:100测试时间:--一、单选题(共20道试题,共40分。
)V1.下面有关重载函数的说法中正确的是()A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数名可以不同满分:2分2.下列描述正确的是()。
A.表示m>n为true或mn&&mB.witch语句结构中必须有default语句C.if语句结构中必须有ele语句D.如果至少有一个操作数为true,则包含“‖”运算符的表达式为true满分:2分3.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是()。
A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念满分:2分4.下列函数中,可以是虚函数的是______。
()A.自定义的构造函数B.拷贝构造函数C.静态成员函数D.析构函数满分:2分5.设voidf1(int某m,long&n);inta;longb;则以下调用合法的是()。
A.f1(a,b);B.f1(&a,b);C.f1(a,&b);D.f1(&a,&b);满分:2分6.如果有char某l=“0123456789”,则,izeof(l)的值是()A.4B.10C.11D.40满分:2分7.下列描述中哪个是正确的()。
A.私有派生的子类无法访问父类的成员B.类A的私有派生子类的派生类C无法初始化其祖先类A对象的属性,因为类A的成员对类C是不可访问的C.私有派生类不能作为基类派生子类D.私有派生类的所有子孙类将无法继续继承该类的成员满分:2分8.下面对静态数据成员的描述中,正确的是_________。
A.静态数据成员可以在类体内进行初始化B.静态数据成员不可以被类的对象调用C.静态数据成员不能受private控制符的作用D.静态数据成员可以直接用类名调用满分:2分9.类模板规定了如何创建一个______。
福建师范大学C语言程序设计考试题

福建师范大学C语言程序设计考试题系别 _______ 班级 _______ 姓名_________ 学号________ 得分__________一、选择题(本大题共40个选项,每个选择项1.5分,共60分)1.在C语言中,合法的字符常数是【1】A)‘程序设计’ B)“程序设计”C)c D)‘\\’2.在C语言中,以下不正确的八进制或不正确的十六进制数是【2】A)090 B)0xABC)0xla D)-0163.执行int x=2,y=3;后表达式x=(y==3)的值是【3】A)0 B)1C)2 D)34.执行语句int a,b,c; a=(b=c=3, c++, b+=c);则a的值是【4】A) 3 B) 4C) 7 D) 115.在循环结构的循环体中执行break语句,其作用是【5】A) 结束本次循环,进行下次循环B) 继续执行break语句之后的循环体中各语句C) 跳出该循环体,提前结束循环D) 终止程序运行6.以下程序运行结果是【6】main(){char s[]=”\’Address\’”;printf(%d\n”, strlen(s));}A) 9 B) 10C) 11 D) 127.以下程序运行结果是【7】main(){int a[]={2, 4, 6, 8, 10}, y=1, x;for(x=0; x<3; x++) y+=a[x+1];printf(“%d\n”, y);}A) 17 B) 18C) 19 D) 208.已定义char x[8]; int i;为了给x数组赋值,以下正确的语句是【8】A) x[8]=”Turbo C”; B) x=”Turbo C”;C) x[]=”Turbo C”; D) for(i=0; i<7; i++) x[i]=getchar();9.设int a[][4]={0, 0};则以下错误的描述是【9】A) 数组a的每个元素都可得到初值0B) 二维数组a的第一维大小为1C) 数组a的行数为1D) 只有元素a[0][0]和a[0][1]可得到初值0,其余元素得不到初值010.以下程序运行结果是【10】fun3(int x){static int a=3;a+=x;return a;}main(){int k=2, m=1, n;n=fun3(k);n=fun3(m);printf(“%d\n”, n);}A) 3 B) 4C) 6 D) 911.以下四个运算符,按优先级由高到低的排列顺序是【11】A) ++ % += > B) % ++ > +=C) % += > ++ D) ++ % > +=12.以下不正确的描述是【12】A) 在函数外部定义的变量是全局变量B) 在函数内部定义的变量是局部变量C) 函数的形参是局部变量D) 局部变量不能与全局变量同名13.“文件包含”预处理语句的使用形式中,当#include后面的文件名用“”括起时,寻找被包含的文件的方式为【13】A) 直接按系统设定的标准方式搜索目录B) 先在源程序所在目录搜索,再按系统设定的标准方式搜索C) 仅仅搜索源程序所在的目录D) 仅仅搜索当前目录14.设有语句int(*p)();则p是一个【14】A) 指向一维整型数组的指针变量B) 指针函数,该函数的返回值为指向整型变量的指针C) 指向函数的指针变量,该函数的返回值为整型D) 数组指针,它的每个元素都是一个可以指向整型变量的指针变量15.若有typedef float AR[5];AR a;则以下叙述正确的是【15】A) a是一个新类型名B) AR是一个实型数组C) AR是一个实型变量D) a是一个实型数组16.C语言的简单数据类型包括【16】A)整型、实型、逻辑型B)整型、实型、字符型、逻辑型C)整型、字符型、逻辑型D)整型、实型、字符型17.在C语言中,变量所分配的内存空间大小【17】A)均为一个字节 B)由用户自己定义C)由变量的类型决定 D)是任意的18.在C语言中,合法的整型常数是【18】A)-0x123 B)3.14159 C)01001101b D)6.7e1019.下列各变量均为整型,选项中不正确的C语言赋值语句是【19】A)i+=++i; B)i=j==k;C)i=j+=i; D)i=j+1=k;20.数学关系式x≤y≤z可用C语言的表达式表示为【20】A)(x<=y)&&(y<=z) B)(x<=y)and(y<=z)C)(x<=y<=z) D)(x<=y)&(y<z)21.若定义float a;现要从键盘输入a数据,其整数位为3位,小数位为2位,则选用【21】A)scanf(“%6f”,&a); B)scanf(“%5.2f”,a);C)scanf(“%6.2f”,&a); D)scanf(“%f”,a);22.下面程序段的运行结果是【22】unsigned a=0356,b;b=~a|a<<2+1;printf(“%x\n”,b);A)ffba B)ff71 C)fff8 D)fc0223.要使以下程序的输出结果为4,则a和b应满足的条件是【23】main(){int s,t,a,b;scanf(“%d%d”,&a,&b);s=t=1;if(a>0) s += 1;if(a>b) t= s + t;elseif(a==b) t=5;else t=2*s;printf(“%d\n”,t);}A)a>0并且a<b B)a<0并且a<bC)a>0并且a>b D)a<0并且a<b24.若int i;则以下循环语句的循环执行次数是【24】for (i=2;i==0;) printf(“%d”,i--);A)无限次 B)0次C)1次 D)2次25.下面程序的输出结果为【25】main(){int i;for(i=100;i<200;i++){if(i%5==0) continue;printf(“%d\n”,i);break;}}A)100 B)101C)无限循环 D)无输出结果26.下列程序段的运行结果是【26】int i=1,a[]={1,5,10,9,13,7};while(a[i]<=10) a[i++]+=2;for (i=0;i<6;i++) printf(“%d”,a[i]);A)2 7 12 11 13 9 B)1 7 12 11 13 7C)1 7 12 11 13 9 D)1 7 12 9 13 727.以下语句把字符串“abcde”赋初值给字符数组,不正确的语句是【27】A)char s[]=“abcde”; B)char s[]={’a’, ’b’,’c’,’d’,’e’,’\0’};C)char s[]={“abcde”}; D)char s[5]= “abcde”;28.若变量c为char类型,能正确判断出c为小写字母的表达式是【28】A) 'a'<=c<= 'z' B) (c>= 'a')||(c<= 'z')C) ('a'<=c)and ('z'>=c) D) (c>= 'a')&&(c<= 'z')29.下列程序段的输出结果是【29】void fun(int *x, int *y){ printf("%d %d", *x, *y); *x=3; *y=4;}main(){ int x=1,y=2;fun(&y,&x);printf("%d %d",x, y);}A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 230.以下程序的输出结果是【30】main(){ int i, k, a[10], p[3];k=5;for (i=0;i<10;i++) a[i ]=i;for (i=0;i<3;i++) p[i ]=a[i *(i+1)];for (i=0;i<3;i++) k+=p[i] *2;printf("%d\n",k);}A) 20 B) 21 C) 22 D)2331.当执行下面的程序时,如果输入ABC,则输出结果是【31】main(){ char ss[10]="1,2,3,4,5";gets(ss); strcat(ss, "6789"); printf("%s\n",ss);}A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC45678932.以下不能对二维数组a进行正确的初始化的语句是【32】A) int a[2][3]={0}; B) int a[][3]={1,2,3,4,5};C) int a[2][3]={{1,2},{3,4},{5,6}}; D) int a[2][3]={{1},{3,4,5}};33.若int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是【33】A) 2 B) 3 C) 4 D)无确定值34.下面程序段的运行结果是【34】int a[2][3]={1,2,3},i,j;for(i=0;i<2;i++)for(j=0;j<3;j++){a[i][j]=a[i*j%2][j]+a[i][(i+j)%3];printf(“%d,”,a[i][j]);}A) 2,4,6,2,0,8, B) 1,2,3,0,0,0,C) 1,2,3,2,0,6, D) 2,4,6,2,0,6,35.下面程序段的运行结果是【35】int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12};printf(“%d\n”,a[2][1]);A) 2 B) 4 C) 7 D)836.定义一个结构体变量时,系统分配给它的内存大小是【36】A)各成员所需内存量的总和B)成员中占内存量最大者所需内存容量C)结构中第一个成员所需内存容量D)结构中最后一个成员所需内存容量37.若typedef char STRING[255];STRING s;,则s是【37】A)字符指针数组变量B)字符数组变量C)字符变量D)字符指针变量38.若已定义:int *p,a;,则语句p=&a;中的运算符“&”的含义是【38】A) 位与运算B) 逻辑与运算C) 取指针内容D)取变量地址39.若有定义char *p,ch;则不能正确赋值的语句组是【39】A)p=&ch;scanf(“%c”,p);B)p=(char *)malloc(1); *p=getchar();C)*p=getchar();p=&ch;D)p=&ch;*p=getchar();40.下面程序段的运行结果是【40】char s[]=“ABC”;int i;for(i=0;i<3;i++) printf(“%s”,&s[i]);A) ABC B) ABCABCABC C) AABABC D)ABCBCC1.下列叙述中正确的是A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种C) C语言的函数可以嵌套定义D) C语言所有函数都是外部函数2.以下所列的C语言常量中,错误的是A) 0xFF B) 1.2e0.5 C) 2L D) '\72'3.下列选项中,合法的C语言关键字是A) V AR B) cher C) integer D) default4.设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为A) 不定值B) 4 C) 3 D) 15.下面程序段的运行结果是【5】float y=0.0,a[]={2.0,4.0,6.0,8.0,10.0},*p;int i;p=&a[1];fo r(i=0;i<3;i++) y+=*(p+i);printf(“%f\n”,y);A) 12.0000 B) 28.0000 C) 20.0000 D) 18.00006.下面程序段的运行结果是【6】char c[]={‘a’,‘b’,‘\0’,‘c’,‘\0’};printf(“%s\n”,c);A) ab c B) ‘a’‘b’C) abc D) ab7.下面程序段的运行结果是【7】char s[10],*sp=“HELLO”;strcpy(s,sp);s[0]=‘h’;s[6]=‘!’;puts(s);A) hELLO B) HELLO C) hHELLO! D) h!8.若有定义int a[3][5],i,j;(且0≤i<3,0≤j<5),则a[i][j]的地址不正确表示是【8】A) &a[i][j] B) a[i]+jC) *(a+i)+j D) *(*(a+i)+j)9.若有定义int *p[4];,则标识符p是一个【9】A) 变量的指针变量B) 指向函数的指针变量C) 指向有四个整数元素的一维数组的指针变量D)指针数组名,有四个元素,每个元素均为一个指向整型变量的指针10.若有定义char *language[]={“FORTRAN”, “BASIC”,“PASCAL”,“JAVA”, “C”};则language[2]的值是【10】A) 一个字符B) 一个地址C) 一个字符串D) 不确定11.C语言规定,函数返回值的类型由【11】所决定。
大一c语言笔试题及答案

大一c语言笔试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述,正确的是:A. 函数必须有返回值B. 函数可以没有返回值C. 函数必须有参数D. 函数不能有参数答案:B3. 在C语言中,以下哪个运算符用于比较两个值是否不相等?A. ==B. !=C. <=D. >=答案:B4. 下列关于数组的描述,错误的是:A. 数组的元素必须是同一数据类型B. 数组可以是多维的C. 数组的大小在编译时确定D. 数组的大小在运行时确定答案:D5. 在C语言中,以下哪个关键字用于定义一个指针?A. intB. charC. floatD. *答案:D6. 下列关于C语言中变量作用域的描述,正确的是:A. 局部变量只能在函数内部使用B. 全局变量只能在函数外部使用C. 局部变量可以在函数外部使用D. 全局变量可以在函数内部使用答案:A7. 在C语言中,以下哪个关键字用于定义一个枚举?A. enumB. structC. unionD. typedef答案:A8. 下列关于C语言中指针的描述,错误的是:A. 指针可以存储地址B. 指针可以存储值C. 指针可以作为函数的参数D. 指针不能作为函数的返回值答案:D9. 在C语言中,以下哪个关键字用于定义一个联合体?A. structB. unionC. enumD. typedef答案:B10. 下列关于C语言中循环的描述,正确的是:A. for循环不能嵌套B. while循环不能嵌套C. do-while循环不能嵌套D. 以上都是错误的答案:D二、填空题(每题3分,共15分)1. 在C语言中,定义一个整型变量的关键字是________。
答案:int2. 如果要定义一个指向整型变量的指针,应该使用________。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编写程序:1.定义一个Point类来处理三维点points(x,y,z).该类有一默认的constructor,一copyconstructor, 一negate()成员函数将point的x,y和z值各乘-1, 一norm()成员函数返回该点到原点(0,0,0)的距离,一个print()成员函数显示x,y,和z的值。
#include<iostream>#include<cmath>using namespace std;class Point{private:double x,y,z;double distance;public:Point(double newX,double newY,double newZ){x=newX;y=newY;z=newZ;distance=sqrt(x*x+y*y+z*z);}Point(Point &p){x=p.x;y=p.y;z=p.z;distance=p.distance;}void negate(){x*=-1;y*=-1;z*=-1;}double norm(){return distance;}void print(){cout<<"x="<<x<<endl<<"y="<<y<<endl<<"z="<<z<<endl;}};void main(){Point dot(5,6,9);cout<<"the distance is: "<<dot.norm()<<endl;Point dot1(dot);cout<<"the distance is: "<<dot1.norm()<<endl;return;}2.定义一个Person类,它的每个对象表示一个人。
数据成员必须包含姓名、出生年份、死亡年份,一个默认的构造函数,一析构函数,读取数据的成员函数,一个print()成员函数显示所有数据。
#include<iostream>using namespace std;class Bdate{private:int year;int month;int day;public:Bdate(){}~Bdate(){cout<<"Destructor is called"<<endl;}void Bprint(){cout<<"Birthday="<<year<<"/"<<month<<"/"<<day<<endl;}void Binput(){cin>>year>>month>>day;}};//definition class Bdate;class Ddate{private:int year;int month;int day;public:Ddate(){}~Ddate(){cout<<"Destructor is called"<<endl;}void Dprint(){cout<<"Dead="<<year<<"/"<<month<<"/"<<day<<endl;}void Dinput(){cin>>year>>month>>day;}};//definition class Ddate;class Person{private:char name[10];Bdate birthday;Ddate dead;public:Person(){}~Person(){cout<<"Destructor is called"<<endl;}void print(){cout<<"name="<<name<<endl;birthday.Bprint();dead.Dprint();}void input(){cin>>name;birthday.Binput();dead.Dinput();}};void main(){Person per;per.input();per.print();return;}3。
定义一个Shape基类,由它派生出Rectanglr和Circle类,二者都有GetArea( )函数计算对象的面积。
使用Rectangle 类创建一个派生类Square。
class Shape{protected:public:double GetArea(){return 0;}};class Rectangle : public Shape{protected:double length;double width;public:Rectangle(){}Rectangle(double l, double w){length = l;width = w;}double GetArea(){return length * width;}};class Circle : public Shape{protected:double radius;public:Circle(double r){radius = r;}double GetArea(){return 3.1415926 * radius * radius;}};class Square : public Rectangle{protected:public:Square(double l) {length = width = l;}double GetArea(){return length * width;}};4. 定义一个Shape抽象类,由它派生出Rectanglr和Circle类,二者都有GetArea( )函数计算对象的面积,GetPerim( ) 函数计算对象的周长。
#include<iostream>#define PI 3.1415926;using namespace std;class Shape //抽象类的定义{public:virtual double GetArea() = 0; //纯虚函数virtual double GetPerim() = 0; //纯虚函数};class Rectangle : public Shape //矩形类,公有继承{public: Rectangle(double aa, double bb) //带参数的构造函数{a=aa;b=bb;cout<<"长"<<a<<"宽"<<b<<endl;}virtual double GetArea(){return a * b;}virtual double GetPerim(){return 2*( a + b );}private:double a;double b;};class Circle : public Shape //圆类,公有继承{public: Circle(double rr) //带参数的构造函数{r=rr;cout<<"半径"<<r<<endl;}virtual double GetArea(){return r * r * PI;}virtual double GetPerim(){return 2 * r * PI;}private:double r;};void main(){double length, width;cout << "输入长和宽: ";cin >> length >> width;Rectangle rect(length, width);cout << "面积是:"<< rect.GetArea() << endl<<"周长是:"<<rect.GetPerim()<<endl;double rr;cout << "输入半径: ";cin >> rr;Circle cir(rr);cout << "面积是:"<<cir.GetArea() << endl<<"周长是:"<<cir.GetPerim()<<endl; }。