c语言程序设计习题答案(6)

2018-12-12 23:03

f1=temp; }

printf(\}

运行结果:32.660259 8、求1!+2!+3!+4!+…+20! #include void main() {int i;

float sum=0,f=1; for(i=1;i<=20;i++) {f= f*i;

sum= sum+f; }

printf(\}

运行结果:2.561327e+018

9、用牛顿迭代法求方程4x-8x+6x-12=0在1.5附近的根。 #include #include void main()

{float x=1.5,x0,y,f1; do

{x0=x;

y=((4*x0-8)*x0+6)*x0-12;

f1=(12*x0-16)*x0+6; (f1是导数) x=x0-y/f1; }

while(fabs(x-x0)>=1e-6);

printf(\ } 运行结果:x= 2.00

10、编写程序,打印出以下图案。

* *** ***** ******* ***** ***

*

3

2

#include

void main( ) {int i,j,k;

for(i=1;i<=4;i++) /* 输出上面四行*号 */ {for(j=1;j<=4-i;j++) /* 输出*号前面的空格 */ printf(\

for(k=1;k<=2*i-1;k++)

printf(\ /* 输出每行*号 */

printf(\ /*输出每行*号后换行 */ }

for(i=1;i<=3;i++) /* 输出下面三行*号 */ {for(j=1;j<=i;j++)

printf(\ /* 输出*号前面的空格 */ for(k=1;k<=5-2*(i-1);k++)

printf(\ /* 输出每行*号 */ printf(\ /* 输出每行*号后换行 */ } }

第四章 数 组

一.选择题

1.以下能正确定义一维数组的选项是(B )。

A)int a[5]={0,1,2,3,4,5};

B)char a[ ]={0,1,2,3,4,5};

C)char a={'A','B','C'}; D)int a[5]=\

2.已有定义 int x[3][2];以下能正确引用数组元素的选项是( C )。

A) x[2][2] B) x[1][2] C) x[2][1] D) x[0][2]

3.有以下语句:int x;char c[10];,则正确的输入语句是( D )。 A) scanf(\

B) scanf(\

C) scanf(\ D) scanf(\4.以下叙述中错误的是( C )。

A) 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B) 数组名代表的是数组所占存储区的首地址,其值不可改变

C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出\下标越界\的出错信息 (VC:可以运行但会显示:遇到问题需要关闭)

D)可以通过赋初值的方式确定数组元素的个数

5.已有定义:char a[ ]=\,以下叙述中正确的是( C )。

A)数组a和b的长度相同 B)a数组长度小于b数组长度 C)a数组长度大于b数组长度 D)上述说法都不对 6.以下能正确定义一维数组的选项是( B )。

A)int num[]; C)int num[0..100]; 7.有以下程序

#include void main()

B) #define N 100 int num[N]; D) int N=100; int num[N];

{char a[ ]={'a','b','c','d','e','f','g','h','\\0'}; int i,j;

i=sizeof(a); j=strlen(a); printf(\ }

程序运行后的输出结果是( D )。 A) 9,9 B) 8,9 C) 1,8 D) 9,8 8.下面程序的运行结果是( B )。

#include void main()

{ char ch[7]={ \int i,s =0;

for(i=0;ch[i]>= '0'&&ch[i]< '9';i++) s=10*s+ch[i]- '0'; printf(\ }

A) 12ba56 B) 65 C) 6 9.有以下程序

#include void main() {

D) 62

int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0;

for(i=0;i<4;i++) s+=aa[i][1]; /*求每行第1列的数的和*/ printf(\}

程序运行后的输出结果是( B )。

A) 11 B) 19 C) 13 D) 20 10.以下不能正确定义二维数组的选项是( A )。. A)int a[2][]={{1,2},{3,4}}; B)int a[][2]={1,2,3,4}; C)int a[2][2]={{1},{2}}; D)int a[2][2]={{1},2,3}; 二.填空题

1.C语言规定数组名代表数组的 首地址 。

2.C语言中二维数组中元素排列的顺序是: 按行存放 。 3.字符数组中的一个元素存放 一个字符 。

4.C语言规定了“字符串结束标志”,以字 ?\\0? 来表示。

5.用\格式符输出字符串时,printf函数中的输出项是 字符数组名 ,而不是数组元素名。

6. 若有以下定义:

float a[10];

则a数组元素下标的上限是 9 ,下限是 0 。 7.下列程序运行结果是 6 。

#include #include void main()

{ char str[12]={'s','t','r','i','n','g'}; printf(\ }

8.以下程序的功能是:使一个字符串按逆序存放,请填空。

#include #include void main()

{ char m;char str[]=\?\\ for(i=0,j=strlen(str);i< j-1 ; i++,j--) { m=str[i];

str[i]= str[ j-1] ; /* str[i]与str[j-1]交换数据*/ str[j-1]=m; }

printf(\ }

9.写出下面程序的运行结果 62 。

#include void main( ) {

int a[2][3]={40,25,-8,6,62,39}; int i,j,max; max=a[0][0]; for(i=0;i<2;i++) for(j=0;j<3;j++) if(a[i][j]>max) max=a[i][j]; printf(\}

10.下面程序的功能是,将字符数组S2中的全部字符拷贝到字符数组S1中。不用strcpy函数。请填空

#include #include void main( ) {

char s1[80],s2[80]; int i;

scanf(\

for(i=0;i<=strlen(s2);i++) s1[i]=s2[i] ; printf(\复制字符串为:%s\\n\); }

三.改错题

1.下面程序求矩阵a的主对角线元素之和,请改错。

#include void main( ) {

int a[3][ ]={2,4,6,8,10,12,14,16,18}; int sum=0,i,j; for(i=0;i<3; i++ ) for(j=0; j<3 ;j++)

if(i==j) sum=sum+a[i][j] ; printf(\ }

错误语句:int a[3][ ]={2,4,6,8,10,12,14,16,18}; 正确语句:int a[ ][3 ]={2,4,6,8,10,12,14,16,18}; 2.有3个字符串,要求找出其中最大者,请改错。

#include #include void main ( ) {

char string[20]; char str[3][20]; int i;

for (i=0;i<3;i++) gets (str[i]);

if (strcmp(str[0],str[1])>0) strcpy(string,str[0]); else strcpy(string,str[1]); if (str[2]>string) string=str[2];

printf(\ }


c语言程序设计习题答案(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:生命安全与救援 网络公选课 答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: