else
{ x1=x0; fx1=fx0; } }while(fabs(fx0)>=1e-5); printf(\
}
2.#include
{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
{ 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
{ 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
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,则其返回值为_________________, 如果str1
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)在线全文阅读。
相关推荐: