77范文网 - 专业文章范例文档资料分享平台

C语言程序设计习题及答案(7)

来源:网络收集 时间:2019-06-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

else

{ x1=x0; fx1=fx0; } }while(fabs(fx0)>=1e-5); printf(\

}

2.#include main()

{int i,a,b,c; printf(\程序正在运行,请稍等....\\n\ for(a=6;a<=5000;a++) {

/* 提示:求a的因子和b、b的因子和c并判断a、b是否为亲密数*/ b=1;

for(i=2;i<=a/2;i++) if(a%i==0) b+=i; if(b==a) continue; c=1;

for(i=2;i<=b/2;i++) if(b%i==0) c+=i; if(a==c)

{printf(\ }

printf(\程序运行结束。\\n\ }

3.#include

main()

{int i;long s=1,k=1;

for(i=2;i<=10;i++) {k*=i; s+=k;} printf(\ }

4.#include #include main()

{ float s=0,a=81,i; for(i=0;i<30;i++)

{s+=a; a=sqrt(a); } printf(\ }

5.main()

{int cnt1,cnt2,cnt5; int total=0;

for(cnt1=0;cnt1<=10;cnt1++) for(cnt2=0;cnt2<=5;cnt2++)

{ if(10-cnt1-2*cnt2>=0) cnt5=(10-cnt1-2*cnt2)/5; if((10-cnt1-2*cnt2)==5*cnt5) {total++;

printf(\ } }

printf(\一共有%d种组合\\n\ }

6.#include main()

{ int i,j,k,m,p,s,d; for(d=200;d<300;d++)

{i=d/100; j = d/10; k=d; p=i*j*k; s=i+j+k; if(p==42 && s==12) printf(\ }

第五部分 数组

一、判断正误

1.C编译程序不检查数组的下标是否越界。

2.C同一数组的不同元素可以是不同的数据类型。

3.定义数组时,指定各下标长度既可以使用常量,也可以使用变量。

4.对数组元素的引用既可以使用常量,也可以使用变量及表达式指出元素的位置。 5.只有对数组的全部元素进行初始化时,才能省略指出数组第一维的大小。 6.数组只有使用(如赋值)时,才分配内存单元。

7.C语言中的多维数组在内存中是线性存储,且引用其元素时,也可以以一维方式引用。 8.C语言规定,所有字符数组都必须以?\\0?(ASCII为0的字符)结束。

9.以字符串方式对字符数组进行初始化时,系统会自动在所定义的字符数组的后面加上

?\\0?(ASCII为0的字符)。

10.对数组初始化时,如果初始化表达式的个数小于下标长度时,只能对部分元素进行

初始化,相反,如果初始化表达式的个数大于下标长度时,则多余的初始化表达式忽略不计。

11.C语言规定,不可以把字符串常量赋值给一个字符数组,但可以在两个大小合适的

两个字符数组之间进行赋值。

12.字符串函数strlen返回不包括字符串结束标志(ASCII为0的字符)在内的全部的字

符个数。 二、填空

1.数组int a[5]的最后一个元素是_______________

2.定义数组时对数组元素赋值叫数组的_________,只有对_______和_________数组才能进行该操作,对一维数组的全部元素赋初值时,可以不指定数组的________。 3.静态整型数组不赋初值时,其各元素的初值为_________________。

4.对数组元素初始化时,若给定的初值个数小于定义的数组元素个数,则_________,若给定的初值的个数多于定义的数组元素个数,则____________。

5.数组在内存中占_________________的存储区,用_________________代表其首地址。 6.多维数组在内存中是_________________存放的,若有数组:A[下标1][下标2][下标3],按数组在内存中的顺序遍历此数组时,变化最快的下标是____________。

7.有如下定义,请写出与之完全等价但要求逐个字符赋初值的形式_____________。

static str[ ]= “China.”

8.有如下程序段,如果输入为:Programming Design ,则此字输出结果为_________________。 char str[30];

printf(“please input the string:\\n”);

scanf(“%s”,str); puts(str);

9.数组定义和输出语句如下,则输出结果为_________________ static char str[ ]= “abc efg!”; printf(“%4.5s”,str);

10.字符串比较函数strcmp(str1,str2),

如果str1=str2,则其返回值为_________________, 如果str1str2,则其返回值为_________________。 三、单项选择

1.下列数组定义错误的是( )。

A.static char word[ ]={?C?, ?h?, ?i?, ?n?, ?a?, ?\\0?}; B.static char word[ ]={“China\\0”};

C.static char word[ ]= “China\\0”; D.static char word[ ]= ?China\\0?; 2.下列数组定义正确的是( )。

A.int a[ ]= “string”; B.int a[5]={0,1,2,3,4,5}; C.char a= “string”; D.char a[]={0,1,2,3,4,5}; 3.函数strlen(“abc\\0def\\0\\40”)的值是( )。

A.8 B.9 C.3 D.4

4.若用数组名作为函数调用时的实参,则实际传递给开参的是( )。 A.数组的首地址 B.数组的第一个元素值 C.数组中全部元素的值 D.数组元素的个数

5.判断字符串str1与str2是否完全相同的,应用使用( )。

A.if(str1= =str2) B.if(str1=str2) C.if(strcpy(str1,str2)) D.if(!strcmp(str1,str2))

6.已知:int a[5];则对a数组元素的最正确的引用是( )。

A.a[5] B.a[2.5] C.a(3) D.a[5-5] 7.以下二维数组的定义正确的是( )。

A.int a[3][ ]; B.float b(3,4); C.int a[2][3]; D.float a[3,4]; 8.以下对二维数组不正确初始化是( )。

A.static int a[2][3]={0}; B.static int a[ ][3]={{1,2},{0}}; C.static int a[2][3]={{1,2},{3,4},{5,6}}; D.static int a[ ][3]={1,2,3,4,5,6} 9.在C语言中,二维数组元素在内存中的存放顺序是( )。

A.按行存放 B.按列存放 C.由用户自己定义 D.由编译器决定 10.已知:static int a[ ][3]={0,1,2,3,4,5,6};则数组的第一维大小是( )。 A.2 B.3 C.4 D.5

11.若二维数组a有m列,则在a[i][j]与数组第一个元素相差( )个数组元素。 A.j*m+i B.i*m+j C.i*m+j-1 D.i*m+j-1 12.已知:char a[20],b[20];则以下正确的输入语句是( )。 A.gets(a,b); B.scanf(“%s%s”,a,b);

C.scanf(“%s%s”,&a,&b) D.gets(“a”);gets(“b”); 13.下面说法正确的是( )。

A.两个字符串所包含的字符个数相同时,才能对其进行比较; B.字符个数多的字符串比字符少的字符串大;

C.字符串“SCHOOL”和字符串“SCHOOL ”(后有一空格)相等;

D.两个字符串比较大小,其大小关系它们之间第一个不相同的字符的ASCII决定。 14.下面程序段的运行结果是( )。 char str[5]={?a?, ?b?, ?\\0?, ?c?, ?\\0?}; printf(“%s”,c);

A.?a? ?b? B.ab C.ab c D.不同时间运行结果不相同 15.下面程序段的运行结果是( )。 char str1[7]= “abcdef”,str2[4]= “ABC”; strcpy(str1,str2); printf(“%c”,str1[5]);

A.\\0 B.e C.f D.空格 16.有以下变量说明语句,则下列说法正确的是( )。 static char str1[ ]= “abcdef”;

static char str2[ ]={?a?, ?b?, ?c?, ?d?, ?e?, ?f?}; A.字符数组str1和字符数组str2的长度相同

B.字符数组str1的长度大于字符数组str2的长度相同 C.字符数组str1的长度小于字符数组str2的长度相同 D.两个字符数组完全等价

17.若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是( )

A. &t[0][2] B. t[3] C. t[1] D. t[2][1]

18.已知有外部变量说明:int a[ ][4]={0,0};则下面叙述中错误的是( )。 A.数组a的每个元素都可得到初始值0 B.二维数组a的第一维大小为1

C.因为二维数组a中第二维大小的值除以初值个数的商为0,故数组a的行数为1 D.只有元素a[0][0],a[0][1]可得到初始值0,其余元素的值都不能确定。 19.已知:static int a[3][4];则数组中各元素( )。

A.可在程序的运行阶段行到初值0 B.可在程序的编译阶段行到初值0

C.不能得到确定的初值 D.可在程序的编译或运行阶段行到初值0 20.已知:char str1[10],str2[10]= “books”;则在程序中能够把字符串“books”赋予数组str1的正确语句是( )。

A.str1={“books”}; B.strcpy(str1,str2); C.str1= “books”; D.strcpy(str2,str1); 四、程序填空

1.程序读入20个整数,统计非负数的个数,并计算非负数之和。 #include “stdio.h” main()

{ int i,a[20],s,count; _______________;

for(i=0;i<20;i++) scanf(“%d”,__________); for(i=0;i<20;i++)

{if(a[i]<0) __________ s+=a[i]; count++

}

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言程序设计习题及答案(7)在线全文阅读。

C语言程序设计习题及答案(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/660825.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: