C++程序设计基础课后答案 第四章

C++程序设计基础课后答案  第四章
C++程序设计基础课后答案  第四章

4.1 阅读下列程序,写出执行结果

1.#include

void main()

{ int i, conut=0, sum=0 ;

float average ;

int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } ;

for( i=0; i<10; i++ )

{ if( a[i] % 2 == 0 ) continue ;

sum += a[ i ] ;

conut ++ ;

}

average = sum / conut ;

cout << "conut = " << conut << '\t' << "average = " << average << endl ; }

2.#include

void main()

{ int a[9] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 } ;

int *p = a , sum = 0 ;

for( ; p

if( *p % 2 == 0 ) sum += *p ;

cout << "sum = " << sum << endl ;

}

3.const int n = 5 ;

#include

#include

void main()

{ int a[n][n]={ 0 }, i, j, k ;

for( k=1 , i=0 ; i

for( j=i; j>= 0; j-- , k++ )

a[j][i - j ] = k ;

for( i=0 ; i

{ for( j=0; j

cout << setw( 3 ) << a[i][j] ; cout << endl ;

}

}

4.int f(int [],int);

#include

void main()

{ int a[] = { -1, 3, 5, -7, 9, -11 } ; cout << f( a, 6 ) << endl ;

}

int f( int a[], int size )

{ int i, t=1 ;

for( i=0 ; i

if( a[i]>0 ) t *= a[i] ;

return t;

}

5.int f( int [][3], int, int ) ;

#include

void main()

{ int a[][3] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 } ; cout << f( a, 3, 3 ) << endl ;

}

int f( int a[][3], int row, int col )

{ int i, j, t=1 ;

for( i=0; i

for( j=0; j

{ a[i][j] ++ ;

if( i == j ) t *= a[i][j] ;

}

return t ;

}

6.#include

void test1( int *a1 )

{ a1 = new int( 5 ) ;

cout << "*a1 = " << *a1 << endl ;

}

void test2(int * & a2)

{ a2 = new int( 5 ) ;

cout << "*a2 = " << *a2 << endl ;

}

void main()

{ int *p = new int( 1 ) ;

test1( p ) ;

cout << "test1: *p1 = " << *p << endl ;

test2( p ) ;

cout << "test2: *p2 = " << *p << endl ;

}

7.#include

void main()

{ char s[] = "abccda" ;

int i ; char c ;

for( i = 1 ; ( c=s[i] ) != '\0'; i ++ )

{ switch( c )

{ case 'a' : cout << '%' ; continue ;

case 'b' : cout << '$' ; break ;

case 'c' : cout << '*' ; break ;

case 'd' : continue ;

}

cout << '#' << endl ;

}

}

8.#include

void main()

{ char *str[] = { "c++", "basic", "pascal" } ; char **p ;

int i ;

p = str ;

for( i=0 ; i<3 ; i++ )

cout << *( p+i ) << endl ;

}

9.#include

void main()

{ char s1[] = "Fortran" , s2[] = "Foxpro" ;

char *p , *q ;

p = s1 ; q = s2 ;

while( *p && *q )

{ if ( *p == *q )

cout << *p ;

p ++ ;

q ++ ;

}

cout << endl ;

}

10.#include

#include

void main()

{ char str[][10] = { "vb", "pascal", "c++" }, s[10] ;

strcpy( s , ( strcmp( str[0] , str[1] ) < 0 str[0] : str[1] ) ) ;

if( strcmp( str[2], s ) < 0 ) strcpy( s, str[2] ) ;

cout << s << endl ;

}

4.2 思考题

1.数组说明语句要向编译器提供什么信息?写出一维数组、二维数组说明语句的形式。

2.数组名、数组元素的区别是什么?归纳一维数组元素地址、元素值不同的表示形式。有说明

int aa [3], *pa=aa;

使用aa或pa,写出3个以上与aa[2] 等价的表达式。

3.要把一维数组 int a[n*n] 的元素传送到二维数组 int b[n][n] 中,即在程序中要执行

b[i][j]=a[k];

写出k->i,j的下标变换公式,并用程序验证之。

4.有以下函数

void query()

{ int *p;

p=new int[3];

//……

delete []p;

p=new double[5];

//……

delete []p;

}

出现了编译错误。请分析错误的原因,并把上述程序补充完整,上机验证你的判断。

5.有以下程序根据输入值,调用函数create建立并初始化动态数组,令a[i]=i。该程序运行后,主函数不能返回期望值。请分析程序的错误原因并修改之。

#include

void create(int *, int);

void main()

{ int *a, len;

cin>>len;

create(a,len);

for( int i = 0; i

cout << endl;

delete []a;

}

void create(int *ap, int n)

{ ap=new int[n];

for(int i=0; i

}

1.数组说明语句要向编译器提供什么信息?请写出一维数组、二维数组说明语句的形式。

【答案】

数组说明语句要向编译器提供数组名(标识符),数组元素的类型、数组长度(元素的个数)等信息。一维数组说明语句为:类型数组名[表达式]

二维数组说明语句为:类型数组名[表达式1] [表达式2]

2.数组名、数组元素的区别是什么?归纳一维数组元素地址、元素值不同的表示形式。若有说明int aa [3], *pa=aa;

请使用aa或pa,写出3个以上与aa[2] 等价的表达式。

【答案】

数组名是一个标识符,执行代码中代表数组的地址,即指向数组起始位置的指针;而数组元素是下标变量,性质相当于普通变量。

对一维数组aa第i个元素的地址可以表示为: &aa[i] aa+i;

对一维数组aa第i个元素的值可以表示为:a[i] *(a+i);

与aa[2]等价的表达式:

*(aa+2) *(&a[2]) *(pa+2) pa[2]

3.要把一维数组 int a[m*n] 的元素传送到二维数组 int b[m][n] 中,即在程序中要执行b[i][j]=a[k];

请写出k→i,j的下标变换公式,并用程序验证。

【答案】

转换公式 i=k/n j=k%n

验证程序:

#include

using namespace std;

int main()

{ const int M=3,N=4;

int k,a[M*N]={1,2,3,4,5,6,7,8,9,10,11,12},b[M][N];

int i,j;

cout<<"array a:"<

for(k=0;k

b[k/N][k%N]=a[k];

for(k=0;k

cout<

cout<<"**After convert**"<

cout<<"array b:"<

for(i=0;i

{ for(j=0;j

cout<

}

}

4.有以下函数

void query()

{ int *p;

p=new int[3];

//……

delete []p;

p=new double[5];

//……

delete []p;

}

出现了编译错误。请分析错误的原因,并把上述程序补充完整,上机验证你的判断。

【答案】

在语句p=new double[5]; 中企图把动态浮点型数组的地址写入整型指针p,造成错误。错误为error C2440: “=”: 无法从“double *”转换为“int *”。

改正方法:增加一个double*q指针。

void query()

{ int *p;

p=new int[3];

delete [] p;

//……

double *q;

q=new double[5];

//……

delete []q;

}

5.有以下程序根据输入值,设计功能是调用函数create建立并初始化动态数组,令a[i]=i。但该程序运行后不能得到期望结果,请分析程序的错误原因并修改之。

#include

using namespace std;

void create(int *, int);

int main()

{ int *a = NULL, len;

cin>>len;

create(a,len);

for( int i = 0; i< len; i++ ) cout << a[i] << " ";

cout << endl;

delete []a;

a = NULL ;

}

void create(int *ap, int n)

{ ap=new int[n];

for(int i=0; i

}

【答案】

函数create中,指针参数int*ap是地址值的参数。调用函数时接受实际参数a的地址值作为初制值。ap仅是局部变量,ap=new int[n]获得新的地址值,函数执行完毕返回,ap被释放,完全与实际参数ap无关。程序没有编译错误,但main不能获得动态数组。修改方法是把ap改为指针引用参数。

void create(int *&,int); //函数原型声明,使用引用参数

void create(int *&ap,int n) //函数定义

{ ap=new int[n];

for(int i=0;i

}

4.3 编程题

1.已知求成绩的平均值和均方差公式: ,,其中n为学生人数,为第i个学生成绩。求某班学生的平均成绩和均方差。

答案 4.3-1

#include

#include

void main()

{ double s[] = { 76, 85, 54, 77, 93, 83, 90, 67, 81, 65 };

double sum1=0,sum2=0,ave,dev;

int n, i;

n = sizeof( s )/sizeof( double ); //求数组元素的个数

for( i=0; i

sum1 += s[i];

ave = sum1/n;

for( i=0; i

sum2 += pow( s[i]-ave, 2 );

dev = sqrt( sum2/n );

cout << "rve=" << ave << '\t' << "dev=" << dev << endl;

}

2.用随机函数产生10个互不相同的两位整数存放到一维数组中,并输出其中的素数。

答案4.3-2

#include

#include

#include

#include

void main()

{ int a[10],i,j; long m;

srand( time(0) ); //为随机数生成器设置种子值

for( i=0; i<10; i++ )

{ l:a[i] = rand(); //产生随机数存放到数组中

if ( a[i]<10 || a[i]>=100 ) goto l;

for( j=0; j

if( a[i]==a[j] ) goto l;

}

for( i=0; i<10; i++ )

cout << a[i] << " ";

cout << endl;

for( i=0; i<10; i++ )

{ double m=sqrt( a[i] );

for( j=2; j<=m; j++)

if( a[i] % j == 0 )break;

if( j>m )

cout << a[i] << " ";

}

cout << "是素数!" << endl;

}

3.将一组数据从大到小排列后输出,要求显示每个元素及它们在原数组中的下标。

答案 4.3-3

#include

void main()

{ int a[] = { 38, 6, 29, 1, 25, 20, 6, 32, 78, 10 };

int index[10];

int i,j,temp;

for( i=0; i<10; i++ )

index[i] = i;

for( i=0; i<=8; i++ )

for( j=i+1; j<=9; j++ )

if( a[i] < a[j] )

{ temp = a[i]; a[i] = a[j]; a[j] = temp;

temp = index[i]; index[i] = index[j]; index[j] = temp;

}

for( i=0; i<10; i++ )

cout << a[i] << '\t' << index[i] << endl;

}

4.从键盘上输入一个正整数,判别它是否为回文数。所谓回文数是指正读和反读都一样的数。例如,123321是回文数。

答案 4.3-4

在程序中,首先拆分整数的每位数字按顺序存放到一个一维数组中。然后用两个变量记录数组元素最大和最小的下标值,它们是两个高端和低端指针。在循环中,比较这两个下标指示对称位置的元素,并使两个指针同时向中间移动(i++, j--)。只要发现一个不相等的元素,表示该整数不是回文数。如果直至i==j,都没有发现不相等的元素,则该整数是回文数。

#include

void main()

{ int b[10], i, j, k, flag ;

long num, n ;

cout << "num=" ; cin >> num;

k = 0;

n = num;

do //拆分整数,把各数字放入数组b

{ b[k++] = n % 10;

n = n/10;

} while( n != 0);

flag=1; //判断标志

i=0; j=k-1; //设置指示下标的指针

while(i

if( b[i++] != b[j--] ) //对称位置元素不相等

{ flag = 0;

break ;

}

if( flag ) cout << num << "是回文数!" << endl;

else cout << num << "不是回文数!" << endl;

}

本题判断一个整数是否为回文数,可以不用数组拆分数字,直接用高位与低位数字比较。还可以把程序写成递归方式。

5.把两个升序的整型数组合并为一个升序数组。设计好你的算法,以得到较高的运行效率。

答案 4.3-5

把两个长度为m和n的有序数组a、b归并为长度m+n的有序数组c,可以利用原数组a、b的有序性,分别用指针i和j指示数组a和b的当前元素下标,当a[i]

#include

void main()

{ int a[4] = { 1, 2, 5, 7 };

int b[8] = { 3, 4, 8, 8, 9, 10, 11, 12 };

int c[12],i,j,k;

i = j = k = 0;

while( i<4 && j<8 )

if( a[i] > b[j] ) //当a[i]>b[j],把b[i]写入数组c

{ c[k] = b[j]; k++; j++; }

else //当a[i]<=b[j],把a[i]写入数组c

{ c[k] = a[i]; k++; i++; }

while( i<4 )

{ c[k] = a[i]; i++; k++; } //把数组a的剩余元素写入数组c

while( j<8 )

{ c[k] = b[j]; k++; j++; } //把数组b的剩余元素写入数组c

for( i=0; i

cout << c[i] << " ";

cout << endl;

}

6. 输入一个星期几号,输出相应的英文单词。要求使用指针数组实现。

答案 4.3-6

#include

void main()

{ char *weekday[7] = { "sunday", "monday", "tuesday",

"wednesday", "thursday", "friday", "saturday" };

int d;

cout << "please input week day: ";

cin >> d;

if( d>=0 && d<=6 )cout << d << "---" << *( weekday + d ) <

else cout << "input error!" << endl;

}

7.编写函数:

(1)在一个二维数组中形成如以下形式的n阶矩阵:

(2)去掉靠边元素,生成新的n-2阶矩阵;

(3)求矩阵主对角线下元素之和;

(4)以方阵形式输出数组。

在main函数中调用以上函数进行测试。

答案 4.3-7

由于本题没有给定矩阵的阶数n,从而应按输入的要求建立动态数组。

需注意的是:使用C++的new运算只能申请一维动态数组。因此,在程序中要把一维数组的访问形式变换成二维数组的访问形式。

另外,使用new运算返回的地址保存在指针变量中,即动态数组名是间接地址。为了使函数正确地在动态数组上操作,在程序中的函数需使用指针引用参数。

#include

void create( int *&app, int n );

void del( int *&app, int *&bpp, int n );

int maindiagonal( int *&app, int n );

void output( int *&app, int );

void main()

{ int *ap = NULL, *bp = NULL, n;

cout << "输入矩阵的阶:";

cin >> n;

create( ap,n );

cout << "\n形成矩阵:\n";

output( ap, n );

cout << "去掉靠边元素生成的矩阵:\n";

del( ap,bp,n );

output( bp,n-2 );

cout << "主对角线元素之和:" << maindiagonal( ap, n ) <

}

//形成n阶矩阵函数

void create( int * &app, int n )

{ app = new int[ n*n ];

int i,j,k = 0;

for( i=0; i

for( j=0; j

{ if( i<=j ) app[k] = 1;

else app[k] = i-j+1;

k++;

}

}

//去掉靠边元素生成n-2阶矩阵函数void del( int *&app, int *&bpp, int n ) { int i,j,k = 0;

bpp = new int[ ( n-2 )*( n-2 ) ];

for ( i=0; i

{ for( j=0; j

if ( i && j && i

k++;

}

}

}

//求主对角线元素之和函数

int maindiagonal( int *&app, int n )

{ int i,j,k = 0,sum = 0;

for ( i=0; i

{ for( j=0; j

if( i==j )

sum += *( app + i*n + j);

}

return sum;

}

//以方阵的形式输出数组函数

void output( int *&app, int n )

{ int i,j;

for ( i=0; i

{ for( j=0; j

cout << *( app + i*n + j) << '\t';

cout<

}

cout<

}

8.设某一城市三个百货公司某个季度销售电视机的情况和价格由如下表格表示。编写程序,每个表格数据以数组存放,求各个百货公司的电视机营业额。

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

2017年电大专科程序设计基础形考任务

电大专科程序设计基础形考任务一 1.计算机的五大主要应用领域是科学计算、数据处理、过程控制、计算机辅助系统和人工智能。 2.总线是连接CPU 、存储器和外部设备的公共信息通道。通常由三部分组成:数据总线、地址总线、控制总线。 3.计算机是一类智能机器,这是因为它除了完成算术运算外,还能完成某些逻辑运算。4.世界上第一台计算机取名为ENIAC 。 5.目前制造计算机所采用的电子器件是大规模集成电路。 6.CPU 是Central Processing Unit 的英文缩写,它主要由运算器、控制器和 寄存器3 个部分组成。 7.完整的计算机系统是由硬件系统和软件系统两大部分组成的。 8.计算机的硬件系统一般可分为存储器、中央处理器、输入设备和输出设备等几个部分。 9.计算机的存储器分为内存和外存两级。 10.随机存储器和只读存储器的英文缩写分别为RAM 和ROM 。 11.系统软件是为有效利用计算机的资源、充分发挥计算机的工作潜力、保证正常运行、尽可能方便用户使用计算机而编制的软件。

12.程序是为实现一定功能,用计算机程序设计语言所编制的语句的有序集合。文档是描述程序设计的过程及程序的使用方法的有关资料。 13.图灵机是计算机的概念模型,奠定了现代计算机的理论基础;冯·诺依曼机是 计算机的结构模型,奠定了现代计算机的设计基础。 14.高级语言源程序的翻译成机器语言程序一般有两种做法: 编译方式和解释方式。15.按照使用方式,程序设计语言分为交互式语言和非交互式语言;按照应用范围 则分为通用语言和专用语言。 16.编译程序的核心部分,叫__语法分析器_______ ,其任务就是检查源程序在语法上是否_正确___ 。 二、选择题(每题2 分,合计20 分)题目2 2、当代计算机的最主要的体系结构称为是______ 。 选择一项: A.冯·诺依曼机 B.PASCAL机 C.非冯·诺依曼机 D.图灵机 3 计算机软件是指____ 。 选择一项: A.源程序选择一项: A.机器语言 B.高级语言 C.目标语言 D.汇编语言 5、显示器是____ 。选择一项: A.存储设备 B.计算设备 B.计算机程序及其有关文挡 C.源程序和目标程序 D.计算机程序 C.输出设备 D.输入设备 6、系统软件的核心软件是 _____ 选择一项: 4、计算机能直接执行的语言是 A. 编译程序

C++程序设计基础课后答案 第八章

8.1 阅读下列程序,写出执行结果 1.#include class Bclass { public: Bclass( int i, int j ) { x = i; y = j; } virtual int fun() { return 0 ; } protected: int x, y ; }; class Iclass:public Bclass { public : Iclass(int i, int j, int k):Bclass(i, j) { z = k; } int fun() { return ( x + y + z ) / 3; } private : int z ; }; void main() { Iclass obj( 2, 4, 10 ); Bclass p1 = obj; cout << p1.fun() << endl; Bclass & p2 = obj ; cout << p2.fun() << endl; cout << p2.Bclass :: fun() << endl; Bclass *p3 = &obj;

cout << p3 -> fun() << endl; } 2.#include class Base { public: virtual void getxy( int i,int j = 0 ) { x = i; y = j; } virtual void fun() = 0 ; protected: int x , y; }; class A: public Base { public: void fun() { cout<<"x = "<

case 1: printf("欢迎进入-学生信息登记系统\n");break; case 2: printf("欢迎进入-学生信息查询系统\n");break; case 3: printf("欢迎进入-学生信息更新系统\n");break; case 4: printf("欢迎进入-学生信息备份系统\n");break; case 5: printf("退出系统\n");break; default:printf("输入错误!\n"); } return 0; }

计算机程序设计基础习题册(含答案)

《计算机程序设计基础》 习 题 册

班级学号姓名成绩一、单选题 1.C++源程序文件的默认扩展名为A。 A) cpp B) exe C) obj D) lik 2.由C++源程序文件编译而成的目标文件的默认扩展名为C。 A) cpp B) exe C) obj D) lik 3.由C++目标文件连接而成的可执行文件的默认扩展名为B。 A) cpp B) exe C) obj D) lik 4.编写C++程序一般需经过的几个步骤依次是B。 A)编译、编辑、连接、调试 B)编辑、编译、连接、调试 C)编译、调试、编辑、连接 D)编辑、调试、编辑、连接 5.程序中主函数的名字为 A 。 A) main B) MAIN C) Main D) 任意标识符 6.下面四个选项中,均是不合法的用户标识符的选项的是C。 A) A p_o do B)float lao _A C)b-a goto int D)_123 temp INT 7.下列变量名中合法的是C。 A) B)C)Tom B) 3a66 C) _6a7b D) $ABC 8.存储以下数据,占用存储字节最多的是 D 。 A) 0 B) ‘0’ C) “0” D) 0.0 9.在C++语言中,字符型数据在内存中的存储形式是D。 A) 补码 B) 反码 C) 原码 D) ASCII码 10.若有说明语句:char c =’\072’;则变量c A。 A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法,变量的值不确定 二、填空题 1.C++头文件和源程序文件的扩展名分别为.h和.cpp 。 2.C++语言规定,标识符只能由字母、数字、下划线三种字符组成,而且第一个字符必须是字母或下划线。 3.一条表达式语句必须以__分号_;___作为结束符。 4.用于从键盘上为变量输入值的标准输入流对象是___cin____;用于输出表达式值的标准输出流对象是__cout____。 5.在一个C++程序文件中,若要包含另外一个头文件或程序文件,则应使用以_#include___标识符开始的预处理命令

c语言程序设计第五版习题答案

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch 语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么?它由哪几部分组成? 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤? 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。

#include main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** * 思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* I love C programs! ************************* 【分析与提示】 ①要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C programs! \n"); printf("************************\n"); }

2017年电大专科程序设计基础形考任务

二、选择题(每题2分,合计20分) 题目 2 2、当代计算机的最主要的体系结构称为是______。 选择一项: A. 冯·诺依曼机 B. PASCAL 机 C. 非冯·诺依曼机 D. 图灵机 3计算机软件是指______ 。 选择一项: A. 源程序 B. 计算机程序及其有关文挡 C. 源程序和目标程序 D. 计算机程序 4、计算机能直接执行的语言是______。 选择一项: A. 机器语言 B. 高级语言 C. 目标语言 D. 汇编语言 5、显示器是______。 选择一项: A. 存储设备 B. 计算设备 C. 输出设备 D. 输入设备 6、系统软件的核心软件是______。 选择一项: A. 编译程序

B. 机器语言 C. 操作系统 D. 汇编程序 7、要保证程序在多次反复使用过程中不发生错误,关键应该提高程序的______。 选择一项: A. 正确性 B. 可靠性 C. 可维护性 D. 有效性 8、汇编语言属于______。 选择一项: A. 过程式语言 B. 逻辑语言 C. 函数式语言 D. 非过程式语言 9、要编写高质量的程序,判断程序质量的首要标准是程序的_____①______,要保证程序在多次反复使用过程不发生错误,应该保证程序的_____②______。 选择一项: A. ①可靠性②有效性 B. ①有效性② 正确性 C. ①正确性②可靠性 10、编译程序的实现算法较为复杂,但它可以产生高效运行的____①______程序,因此更适合翻译那些规模较大、结构较复杂、需要较长运行时间的_____②______ 程序。 选择一项: A. ① 目标② 应用 B. ① 执行② 复杂 C. ①可执行代码② 系统 11、高级语言源程序的翻译有两种方式,对程序逐句进行分析并立即执行的这种方式为_____①_______,另一种是需要把程序先转化为目标代码再装入内存运行,这种方式为______②______。 选择一项: A. ①解释②编译 B. ①编译②解释 C. ①翻译②解释

Java程序设计基础习题答案

Java程序设计基础课后习题参考答案 第2章 1、关于Java Application得入口方法main()得检验: main()方法得参数名就是否可以改变? main()方法得参数个数就是否可以改变? 该方法名就是否可以改变? 参考答案:(1)main()方法得参数名可以改变.(2)main()方法得参数个数不可以改变。(3)该方法名不可以改变。 2、当一个程序没有main()方法时,能编译吗?如果能编译,能运行吗? 参考答案:当一个程序没有main()方法就是,就是可以编译通过得,但就是不能给运行,因为找不到一个主函数入口。 3、下列语句能否编译通过? bytei =127; bytej = 128; longl1 = 999999; long l2= 9999999999; 参考答案:byte i 与long l1可以编译通过。而byte j 与longl2 超出自身数据类型范围,所以编译失败。 4、下列语句能否编译通过? float f1 =3、5; float f2 = 3.5f; 参考答案:java中浮点型得数据在不声明得情况下都就是double型得,如果要表示一个数据就是float型得,必须在数据后面加上“F”或“f”;因此,floatf1 无法编译通过。 5、验证int 与char,int与double等类型就是否可以相互转换。 参考答案:(1)char类型可以转换为int 类型得,但就是int类型无法转换为char类型得;(2)int 可以转换为double类型得,但就是double类型无法转换为int 类型得。 6、计算下列表达式,注意观察运算符优先级规则。若有表达式就是非法表达式,则指出不合法之处且进行解释。 (1)4+5 == 6*2 ?(2) (4=5)/6?? (3)9%2*7/3>17(4)(4+5)<=6/3 ? (5) 4+5%3!=7-2????(6)4+5/6〉=10%2 参考答案:表达式(2)为不合法表达式,只能将值赋值给一个变量,因此其中(4=5)将5赋值给4就是不合法得. 7、下列()就是合法得Java标识符。 (1)Counter1 ??(2)$index, (3) name-7 ??(4)_byte

电大实用法律基础学习知识形考规范标准答案

第一次形考试题及答案 实用法律基础第一次作业(第一二三章) 一、名词解释(每题5分,共4道题总计20分) 1.法 是由国家制定或认可并以国家强制力保证其实施的,反映着统治阶级意志的规范体系,这个意志的内容是由统治阶级的物质生活条件决定的 2.宪法 是国家的根本大法,它规定国家各项基本制度、公民基本权利和义务、国家机关构成及其活动的基本原则。 3.行政复议 是指公民、法人或者其他组织认为行政机关的具体行政行为侵犯其合法权益,按照法定的程序和条件向作出该具体行政行为的上一级行政机关提出申请,由受理申请的行政机关对具体行政行为依法进行审查并作出行政复议决定的活动。 4.具体行政行为 是指国家行政主体针对特定的行政管理对象实施的行政行为。包括行政许可、行政强制、行政处罚等行为,通常以具体、完整的行政决定的形式表现出来。具体行政行为通常具有个别效力。 二、单项选择题(每小题2分,共10道题总计20分) 1.惟有( C )的实施,才依靠国家强制力的保证

A.道德习俗 B. 宗教信条 C.法律 D.社会章程 2.进行普法宣传教育的首要问题是( C ) A.让人们知道社会主义法律的本质 B.使人们了解什么是违法和犯罪 C.培养人民群众的法律意识 D.提高领导人的法律知识水平 3.我国的基本政治制度是( C ) A.社会主义制度 B.人民民主专政制度 C.人民代表大会制度 D.民主集中制 4.我国人民代表大会制度的核心内容和实质是(C ) A.少数服从多数 B.集体行使职权 C.国家的一切权力属于人民 D.平等原则 5.依照我国现行宪法的规定, 制定和修改基本法律的国家机关是( A ) A. 全国人民代表大会 B.全国人民代表大会常务委员会 C.全国人民代表大会法律委员会 D.最高人民法院 6.我国现行《宪法》是制定的时间(D) A.1954年宪法 B.1973年宪法 C.1979年宪法 D.1982年 7.某市人民政府制定一规章,授权市政府市场管理办公室负责治理乱设摊点问题,并明确市综合治理委员会直接主管该办公室工作。高某因私自设照相点被市场管理办公室罚款

(完整版)C语言程序设计练习及答案

《C语言程序设计》练习及答案 得分评卷人复查人 一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。 1、结构化程序设计的三种基本控制结构是(D )。 A、主程序、子程序、函数 B、输入、处理、输出 C、调用,返回,转移 D、顺序、选择、循环 2、下列关于C程序变量的叙述, ( D )是错误的。 A、变量名必须由字母或下划线开头。 B、程序中的变量必须在被使用之前定义。 C、不同的基本类型的变量之间可以混合运算。 D、变量的数据类型决定变量的"作用域"。 3、能将C语言编写的源程序转换为目标程序的软件是(C )。 A、编辑程序 B、汇编程序 C、编译程序 D、解释程序 4、以下符号中,合法的用户标识符是( D )。 A、-p B、int C、3ab D、_xt_ 5、以下选项中,与m=n++完全等价的表达式是( C )。 A、m=++n B、m+=n+1 C、m=n, n=n+1 D、n=n+1,m=n 6、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是(C )。 A、&aa[0]+1 B、&aa[1] C、&aa[0]++ D、aa+1 7、表达式!5&(7+3)&&(4+5)的值是(A)。 A、0 B、1 C、5 D、9 8、以下选项中非法的C语言表达式是(A )。 A、x+1=x+1 B、0<=x<100 C、i=j==0 D、(char)(65+3) 9、在TURBO C中, int类型变量所占字节数是(B )。 A、1 B、2 C、4 D、8 10、C语言中基本的数据类型包括(B)。 A、整型,实型,逻辑型 B、整型,实型,字符型

2019国开电大《程序设计基础》形考任务4答案

程序设计基础形考任务4: 1.算法的四种基本操作是逻辑运算、算数运算、数据比较、数据传送。 2.算法的控制结构有三种基本形式:顺序结构、选择结构、循环结构。 3.评价算法需要从几个不同的角度考虑,最主要的是正确性和运行效率。 4.算法的运行效率包括两方面,算法的时间复杂度和算法的空间复杂度。 5.结构化程序设计的总体思想是采用模块化结构,自顶向下、逐步求精。 6. 软件生存周期包括软件的定义、软件的开发和软件使用与维护3个部分。 7. 软件定义时期主要包括可行性研究和需求分析两个阶段。 8.软件开发时期是具体设计和实现在前一时期定义的软件,它由软件的设计阶段、实现阶段、集成阶段组成。 9.软件工程的目标是可概括为生产具有正确性、可用性以及开销合宜的产品。 10.软件开发模型大体上可分为两种类型,第一种是以软件需求完全确定为前提的瀑布模型。第二种是在软件开发初始阶段只能提供基本需求时采用的渐进式开发模型。 二、选择题(每题4分,合计40分) 2下列叙述中正确的是_____。 选择一项: A. 算法就是程序 B. 设计算法时只需要考虑结果的可靠性

C. 以上三种说法都不对 D. 设计算法时只需要考虑数据结构的设计 3下列叙述中正确的是_____。 选择一项: A. 一个算法的空间复杂度大,则其时间复杂度也必定大 B. 以上三种说法都不对 C. 一个算法的空间复杂度大,则其时间复杂度必定小 D. 一个算法的时间复杂度大,则其空间复杂度必定小 4一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是()。选择一项: A. 有零个或多个输入 B. 可行性 C. 有穷性 D. 有零个或多个输出 5下面叙述正确的是()。 选择一项: A. 算法的时间复杂度是指执行算法所需要的计算工作量 B. 算法的效率只与问题的规模有关,而与数据的存储结构无关 C. 数据的逻辑结构与存储结构是一一对应的 D. 算法的时间复杂度与空间复杂度一定相关 6那一项不属于算法的四种基本的功能操作( ) 。

《计算机程序设计基础》课后练习题参考答案

《计算机程序设计基础》课后练习题1 一.判断题 (1)(错)事件过程由某个用户事件或系统事件触发执行,但不能被其他过程调用。 (2)(错)若X=2, Y=5,则表达式 Y-2>X AND X+2>Y 的结果为:True。 (3)(错)常量是指在程序运行过程中其值可以改变的那些量。 (4)(错,timer没有)VB工具箱中的所有控件都具有宽度(Width)和高度(Height)属 性。 (5)(错)定义变量:Dim max,min as Single , 则max 和 min 的数据类型均为Single。 (6)(对)如果创建的菜单项的标题是一个减号“-”,则该菜单项显示为一条分隔线。 (7)(错)标准模块文件的扩展名是“*.VBP”。 (8)(错,都不能)定时器控件可以响应Click事件,但不能响应DbClick事件。 (9)(错)在默认情况下,数组下标下界的缺省值为1。 (10)(对)在使用字体对话框时,需要对其Flags属性先进行相应设置。 二.单选题 (11)在Visual Basic中,表示鼠标单击事件的是 C 。 A)Activate B)DoubleClick C)Click D)MouseDown (12)用于设置计时器时间间隔的属性是 A 。 A)Interval B)Name C)Left D)Top (13)函数Int(10*Rnd)是在 D 范围内的整数。 A)[1,10] B)[1,10] C) [0,9) D)[0,9] (14)Select case语句结构的结尾应使用 D 。 A)End B) End Case C) End Sub D) End Select (15)改变了容器的坐标系后,该容器的 A 属性值不会改变。 A)left B)scaleleft C)scaletop D)scalewidth (16)执行下列语句后,列表框中各表项顺序为 D List1.Clear For i=1 to 4 : List1.AddItem i-1,0 :Next i A)B)C)D) (17)输入对话框InputBox的返回值的类型是 A 。

C语言程序设计第二版习题参考答案

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。

国开电大专科《程序设计基础》形考任务1至4试题及答案

国开电大专科《程序设计基础》形考任务1至4试题及答案 说明:资料整理于2020年11月19日。 形考任务1 试题及答案 一、填空题 1.计算机的五大主要应用领域是______、______、______、______和______。 [答案]科学计算、数据处理、过程控制、计算机辅助系统、人工智能 2.总线是连接______、______和______的公共信息通道。通常由三部分组成:______、______、______。[答案]CPU、存储器、外部设备、数据总线、地址总线、控制总线 3.计算机是一类智能机器,这是因为它除了完成算术运算外,还能完成某些______。 [答案]逻辑运算 4.世界上第一台计算机取名为______。 [答案]ENIAC 5.目前制造计算机所采用的电子器件是______。 [答案]大规模集成电路 6.CPU是 Central Processing Unit 的英文缩写,它主要由______、______和寄存器 3个部分组成。[答案]运算器、控制器 7.完整的计算机系统是由______和______两大部分组成的。 [答案]硬件系统、件系统 8.计算机的硬件系统一般可分为______、______、______和______等几个部分。 [答案]存储器、中央处理器、输入设备、输出设备 9.计算机的存储器分为______和______两级。 [答案]内存、外存 10.随机存储器和只读存储器的英文缩写分别为______和______。 [答案]RAM、ROM 11.______是为有效利用计算机的资源、充分发挥计算机的工作潜力、保证正常运行、尽可能方便用户使用计算机而编制的软件。 [答案]系统软件 12.______是为实现一定功能,用计算机程序设计语言所编制的语句的有序集合。______是描述程序设计的过程及程序的使用方法的有关资料。 [答案]程序 13.______是计算机的概念模型,奠定了现代计算机的理论基础;______是计算机的结构模型,奠定了现代计算机的设计基础。 [答案]图灵机 14.高级语言源程序的翻译成机器语言程序一般有两种做法: ______方式和______方式。 [答案]编译、解释 15.按照使用方式,程序设计语言分为______语言和______语言;按照应用范围则分为______语言和______语言。 [答案]交互式、非交互式、通用、专用 16.编译程序的核心部分,叫______,其任务就是检查源程序在语法上是否_______。 [答案]语法分析器、正确 二、选择题 当代计算机的最主要的体系结构称为是______。 [答案]冯?诺依曼机 计算机软件是指______ 。

程序设计基础练习题(全答案版)

《程序设计基础——C#.NET》练习 参考答案: 一、选择题 https://www.360docs.net/doc/4e6122861.html,的目的就是将____A____作为新一代操作系统的基础,对互联网的设计思想进行扩展。A.互联网 B. Windows C. C# D. 网络操作系统 2.假设变量x的值为10,要输出x值,下列正确的语句是__C__。 A.System.Console.writeline(“x”) B. System.Cosole.WriteLine(“x”) C. System.Console.WriteLine(“x={0}”,x) D. System.Console.WriteLine(“x={x}”) 3.要退出应用程序的执行,应执行下列的_A___语句。 A. Application.Exit(); B. Application.Exit; C. Application.Close(); D. Application.Close; 4.关于C#程序的书写,下列不正确的说法是__D________。 A.区分大小写 B.一行可以写多条语句 C.一条语句可以写成多行 D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法 5. 在C#语言中,下列能够作为变量名的是__C__。 A.if B. 3ab C. b_3a D. a-bc 7. 能正确表示逻辑关系“a≥5或a≤0”的C#语言表达方式是__D__。 A.a>=5 or a<=0 B. a>=5|a<=0 C. a>=5&&a<=0 D. a>=5||a<=0 8. 以下程序的输出结果是___C_____。 A. 5 B. 4 C. 6 D. 不确定 9. If语句后面的表达式应该是__A___。 A.逻辑表达式 B. 条件表达式 C. 算术表达式 D. 任意表达式10.有如下程序:

国家开放大学实用法律基础形考二答案

《实用法律基础》网上作业二 一、判断正误题 1、具有民事权利能力是自然人享有民事主体地位的标志。(√) 2、能够引起债产生的都是合法的法律事实。(×) 3、无民事行为能力人不能独立进行任何民事活动。(×) 4、在诉讼时效期间的最后6个月内,一方当事人提起诉讼的,诉讼时效中止。(×) 5、当事人对造成损害都没有过错的,可以根据实际情况,由当事人分担民事责任。(√) 6、人身权与权利主体的人身密不可分,所体现的是权利主体精神上的利益。(√) 7、物权是指直接支配一定的物并排斥他人干涉的权利。在我国,物权就是所有权。(×) 8.企业破产案件由债务人所在地人民法院管辖。( √ ) 9.人民法院对破产案件作出的裁定,除驳回破产申请的裁定外,一律不准上诉。( √ ) 10.持票人取得票据如无对价或无相当对价,不能有优于其前手的权利( √ ) 11.票据侦务人可以以自己与出票人之间所有的基于人的关系的抗辩对抗持票人。 ( × ) 12.股东全部缴纳出资后,以股东会决议的形式向公司登记机关提供各股东的出资证明。 ( × ) 13.债权人认为债权人会议决议违反法律规定的,可以在债权人会议作出决议后十天内提请法院裁定。( × ) 14.债权人认为债权人会议决议违反法律规定的,可以在债权人会议作出决议后十天内提请法院裁定。( × ) 15.合伙人之间有关利润和亏损的分担比例对债权人具有约束力。( × )

16、法律、法规不属于著作权法保护的作品(√)。 17、公民为完成法人或其他组织工作任务所创作的作品是职务作品。(√) 18、任何情况下,侵犯他人知识产权都不至于承担刑事责任。(×) 19、我国对专利申请的受理和审查以及专利权的授予统一集中进行,而不是分 散在各省市进行。(×) 20、中国公民、法人或者其他组织的作品,不论是否发表,均或依照著作权法 享有著作权。(√) 21、专利权可以转让,专利申请权不得转让。(×) 22、婚姻法所调整的财产关系,适用于民法的某些规定。( √ ) 23、自然性是婚姻家庭关系的本质属性,它能决定婚姻家庭关系的性质.( × ) 24、婚姻家庭关系的性质是由当时社会生产关系所决定的,(√ ) 25、夫妻间,父母子女间遗产继承问题,按照适用婚姻法中的法定继承的有关规 定执行。(√ ) 26、婚姻自由是公民的一项基本权利,这种权利是绝对的。( × ) 27、继承权是指继承人享有的依照法律规定或者被继承人的遗嘱指定二取得被继 承人遗产的权利。(√) 28、法定继承人的范围是没有限制的。(×) 29、遗产的处理没有规范程序。(×) 30、法律义务是法律关系的主体依照法律规定具有的自主决定作出或者不作出某 种行为。(× ) 二、单项选择题 1、民法的平等原则主要体现在( B )。 A、商品交换的等价B、 民事主体平等的法律地位C、民事主体所有权利的相同D、民事主体所有义务 的相同 2、下列民事行为当然无效的是( D ) A、受欺诈所为的民事行为 B、受胁迫所为的民事行为 C、重大误解的 民事行为D、违反法律的民事行为

程序设计基础形考任务四参考答案

程序设计基础形考任务四参考答案 一、填空题 1.算法的四种基本操作是算术运算、逻辑运算、数据传送、数据比较。2.算法的控制结构有三种基本形式:顺序、分支、循环。 3.评价算法需要从几个不同的角度考虑,最主要的是正确性和运行效率。4.算法的运行效率包括两方面,算法的空间复杂度和算法的时间复杂度。 5.结构化程序设计的总体思想是采用模块化结构,自顶向下、逐步求精。 6.软件生存周期包括软件的定义、软件的开发和软件使用和维护3个部分。 7. 软件定义时期主要包括可行性研究和需求分析两个阶段。 8.软件开发时期是具体设计和实现在前一时期定义的软件,它由软件的设计阶段、实现阶段、集成阶段组成。 9.软件工程的目标是可概括为生产具有正确性、可用性以及开销合宜的产品。10.软件开发模型大体上可分为两种类型,第一种是以软件需求完全确定为前提的瀑布模型。第二种是在软件开发初始阶段只能提供基本需求时采用的渐进式开发模型。 二、选择题 题目2 下列叙述中正确的是_____。 选择一项:B A. 设计算法时只需要考虑数据结构的设计 B. 以上三种说法都不对 C. 设计算法时只需要考虑结果的可靠性 D. 算法就是程序 题目3 下列叙述中正确的是_____。 选择一项:D A. 一个算法的空间复杂度大,则其时间复杂度也必定大 B. 一个算法的空间复杂度大,则其时间复杂度必定小 C. 一个算法的时间复杂度大,则其空间复杂度必定小 D. 以上三种说法都不对 题目4 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是()。选择一项:B A. 有穷性 B. 有零个或多个输出 C. 可行性 D. 有零个或多个输入 题目5 下面叙述正确的是()。 选择一项:C A. 算法的时间复杂度与空间复杂度一定相关 B. 数据的逻辑结构与存储结构是一一对应的 C. 算法的时间复杂度是指执行算法所需要的计算工作量 D. 算法的效率只与问题的规模有关,而与数据的存储结构无关 题目6

相关文档
最新文档