华工高级语言程序设计C 作业答案

发布 2021-04-24 17:25:28 阅读 7684

一、分析程序,写输出结果。

#include<>

#include<>

void main()

int m, k, i ;

for( m=1; m<=10; m+=2 )

解:m 的取值为1,3,5,7,9

对应k的取值为0,1,1,2,3,第二个for循环:只有当k=2和k=3时才执行,当k=2,i=2,m%i等于1为真,输出m为7

当k=3,i=2,m%i等于1为真,输出m为9,i=3,m%i等于0为假,无输出。结果为:

#include<>

void fun();

void main()

int i;

for(i=1;i<5;i++)fun();

cout<}

void fun()

static int a;

int b=2;

a +=2 ;

cout<< a+b <

解:主函数循环4次调用fun();

fun()函数内定义了静态局部变量a,所以a的值会保持到下一次调用。结果为:

#include<>

int fun(int n)

if(n==0) return 1;

return 2*fun(n-1);

void main()

int a=5;

cout<}

解:fun()函数用递归求出2的n次方,结果为: 32

#include<>

void main()

char *cp="word";

for (int i=0 ; i<4; i++

cout<}

解:主函数4次循环中,第一次输出cp+i,此时cp指向“word”的第一个字符,所以输出“word”,之后cp依次往后移一个位置,输出此位置及后面的字符。

结果为:word ord rd d

二、.根据程序功能填空。

1. 程序把10个数存储到一维数组a中,并求该数组中最大值。

#include<>

void main()

int max;

int a[10]=;

int *p= a

max=*p;

for( ;p< &a[10p

if( *p>max ) max= *p

cout<<"max= "

2.下面程序的功能是输出1至100之间每位数字的乘积大于每位数的和的数。例如,45两位数字的乘积为4×5=20,和为4+5=9。

#include<>

void main()

int n, k=1, s=0, m;

for(n=1; n<=100; n++)

if(k>s) cout< }

3.程序对输入的n求s = 1 + 1/23 + 1/33 + 1/n3 。

#include<>

void main()

double s; int i, n;

cout<<"n= "cin>>n;

s = 0;

for (i=1; i s= s+1/(i*i*i

cout<<"s="<

4.函数create从键盘输入整数序列,以输入0为结束。按输入顺序建立一个以head为表头的单向链表。

struct node;

create( node *head

node *p, *q;

p=new node;

cin>>p->data;

q=p;while( p->data

q->next=null;

delete p;

5.以下程序求方程的全部整数解:

3x + 2y - 7z = 5 ( 0 ≤ x, y, z ≤ 100 )

#include<>

void main()

int x, y, z ;

for( x=0; x<=100; x++

for( y=0; y<=100; y++

三、程序设计。

1. 编写函数输出以下形状的图形,其中构成图形的数字和输出的行数通过参数传送。

答:void printfigure(int num, int row)

int i, j, k;

num = num - row +1;

for(i = 1; i <=row; i++)

2. 请编程序,输入两个正整数啊a和b(athe factors of 6 :

the factors of 7 :

no factor

the factors of 8 :

答: #include<>

#include<>

void out(int a, int b)

int i, j, count;

for(i = a; i <=b; i++)

count = 0;

printf("the factor of %d", i);

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

if(i % j ==0)

printf("%s%d", count ==0j);

count++;

if(count ==0)printf("no factor");

3.请编程序,找出1至99之间的全部同构数。同构数是这样一组数:它出现在平方数的右边。例如:5是25右边的数,25是625右边的数,所以5和25都是同构数。

答:#include

using namespace std;

void main()

int i, j, k;

k = 10;

for(i = 1; i <=99; i++)

cout<}

4. 编写一个程序,实现如下功能:

(1)从键盘输入a op b。其中a, b为数值;op为字符,限制为+、-

(2)调用函数count(op,a,b),计算表达式a op b的值。由主函数输出结果。

答:#include ""

#include

using namespace std;

class cal

public:

int add(int x,int y) /加法定义函数。

return x+y; }

int sub(int x,int y) /减法定义函数。

return x-y; }

int mul(int x,int y) /乘法定义函数。

return x*y; }

int div(int x,int y) /除法定义函数。

if(y==0)

cout<<"0不能作除数"

return x/y;

int main()

cal c; /定义对象。

int x,y;

char id;

cout<<"请输入要计算的两个数及运算符,中间用空格隔开比如2 3 +"cin>>x>>y>>id;

switch (id)

case '+

cout<<

case '-

cout<<

case '*

cout<<

华工高级语言程序设计C 随堂练习答案

1.下列字符列中,合法的标识符是 a begin b for c 答题 已提交 21.以下运算符中,优先级最低的是 a b c d 参 b 1.设有变量定义inty 234 执行语句cout 答题 已提交 1.有函数定义void 不正确的调用方式是 a b c d 答题 已提交 1.一个5个元素的一...

C语言程序设计作业答案

作业一c语言概述参 一 选择题。1 5acdcb二 编程题main 作业二程序的灵魂 算法参 一 填空题。1 确定性 有效性 有零个或多个输入 有一个或多个输出2 顺序结构 选择结构 循环结构3 函数。作业三数据类型 运算符与表达式参 一 选择题1 5bddab21 25addba 6 10bcaa...

C 语言程序设计作业答案

c 语言程序设计复习课。一 第一章单选题。1 在每个c 程序中都必须包含有这样一个函数,该函数的函数名为 答案 a a main b main c name d function 2 c 源程序文件的缺省扩展名为 答案 a a cpp b exe c obj d lik 3 程序运行中需要从键盘上输...