C语言习题集
8 printf(\[0]); 9 } A)没有 B)第4行 C)第6行 D)第8行
15.以下程序的输出结果是( )。 # include
{char str[12]={′s′,′t′,′r′,′i′,′n′,′g′}; printf(\ } A)6 B)7 C)11 D)12
16.在C语言中,一维数组的定义方式为:类型说明符 数组名( )。 A)[常量表达式] B)[整型表达式]
C)[整型常量]或[整型表达式] D)[整型常量]
17.若有说明:int a[3][4];则对a数组元素的非法引用是( )。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4]
18.若有说明:int a[][4]={0,0};则下面不正确的叙述是( )。 A)数组a的每个元素都可得到初值0 B)二维数组a的第一维大小为1
C)因为二维数组a中初值的个数不能被第二维大小的值整除,则第1维的大小等于所得商数再加1,故数组a的行数为1
D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0 19.以下各组选项中,均能正确定义二维实型数组a的选项是( )。 A)float a[3][4]; float a[][4];
float a[3][]={{1},{0}}; B)float a(3,4);
float a[3][4];
float a[][]={{0};{0}}; C)float a[3][4];
static float a[][4]={{0},{0}}; auto float a[][4]={{0},{0},{0}}; D)float a[3][4]; float a[3][]; float a[][4]
20.下面程序中有错误的行是( )。
第20页/35页
C语言习题集
(1)main( ) (2){
(3)int a[3]={1}; (4)int i;
(5)scanf(\
(6)for(i=1;i<3;i++) a[0]=a[0]+a[i]; (7)printf(\[0]); (8)} A)3 B)6 C)7 D)5
二、填空题
1.下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。请填空。
#include
{char a[]=\int i, j, k; k=strlen(a);
for(i=0; i<=k-2; i+=2) for(j=i+2; j { t=a[i]; a[i]=a[j]; a[j]=t; } puts(a); printf(\} 2.以下程序的输出结果是______。 #include {chars[]=\s[3]=′\\0′; printf(\} 3.设有下列程序: #include char str[10], temp[10]; gets(temp); for (i=0; i<4; i++) { gets(str); if (strcmp(temp,str)<0)strcpy(temp,str); 第21页/35页 C语言习题集 } printf(\} 上述程序运行后,如果从键盘上输入(在此 则程序的输出结果是______。 4.若有以下定义: double w[10]; 则w数组元素下标的上限为______,下限为______。 5.以下程序统计从终端输入的字符中大写字母的个数。用#号作为输入结束标志,请填空。 #include {int num[26],i; char c; for(i=0; i<26; i++)num[i]=0; while(______!=′#′)/*统计从终端输入的大写字母个数*/ if( isupper(c))num[c-65]+=1; for(i=0; i<26; i++) if(num[i])printf(\[i]); } 6.在C语言中,二维数组元素在内存中的存放顺序是______。 7.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}}; 则初始化后,a[1][2]得到的初值是______,a[2][1]得到的初值是______。 8.下面程序的运行结果是______。 #include { int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; printf(\for(i=0;i<=1;i++) { for(j=0;j<=2;j++) { printf(\[i][j]); b[j][i]=a[i][j]; } printf(\ } printf(\for(i=0;i<=2;i++) { for(j=0;j<=1;j++) printf(\[i][j]); printf(\ } } 9.下面程序的运行结果是______。 #include 第22页/35页 C语言习题集 main( ) { int a[5][5],i,j,n=1; for(i=0;i<5;i++) for(j=0;j<5;j++) a[i][j]=n++; printf(\for(i=0;i<5;i++) { for(j=0;j<=i;j++) printf(\[i][j]); printf(\} } 10.以下程序可求出所有的水仙花数。(提示:所谓水仙花数是指一个3位正整数,其各位数字的立方之和等于该正整数。例如407=4*4*4+0*0*0+7*7*7,故407是一个水仙花数。)请填空。 #include { int x,y,z,a[8],m,i=0; printf(\for(______;m++) { x=m/100; y=______; z=m; if(x*100+y*10+z==x*x*x+y*y*y+z*z*z) {______;i++;} } for(x=0;x printf(\[x]); } 第7章 函数 一、选择题 1.以下对C语言函数的描述中,正确的是( )。 A)C程序由一个或一个以上的函数组成 B)C函数既可以嵌套定义又可以递归调用 C)函数必须有返回值,否则不能使用函数 D)C程序中调用关系的所有函数必须放在同一个程序文件中 2.以下叙述中不正确的是( )。 A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B)在C的函数中,最好使用全局变量 C)在C中,形式参数只是局限于所在函数 D)在C中,函数名的存储类别为外部 第23页/35页 C语言习题集 3.C语言中函数返回值的类型由( )决定。 A)return语句中的表达式类型 B)调用函数的主调函数类型 C)调用函数时临时类型 D)定义函数时所指定的函数类型 4.一个C程序由函数A(),B(),C()和函数P()构成,在函数A()中分别调用了函数B()和函数C(),在函数B()中调用了函数A(),且在函数P()中也调用了函数A(),则可以说( )。 A)函数B()中调用的函数A()是函数A()的间接递归调用 B)函数A()被函数B()调用是直接递归调用 C)函数P()直接递归调用了函数A() D)函数P()中调用的函数A()是函数P()的嵌套 5.下面不正确的描述为( )。 A)调用函数时,实参可以是表达式 B)调用函数时,实参与形参可以共用内存单元 C)调用函数时,将为形参分配内存单元 D)调用函数时,实参与形参的类型必须一致 6.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是( )。 A)地址传递 B)由实参传给形参,并由形参传回给实参 C)值传递 D)由用户指定传递方式 7.在C语言程序中( )。 A)函数的定义可以嵌套,但函数的调用不可以嵌套 B)函数的定义和调用均可以嵌套 C)函数的定义和调用均不可以嵌套 D)函数的定义不可以嵌套,但函数的调用可以嵌套 8.C语言中形参的默认存储类别是( )。 A)自动(auto) B)静态(static) C)寄存器(register) D)外部(extern) 9.以下函数调用语句中,含有的实参个数是( )。 fun(x+y,(e1,e2),fun(xy,d,(a,b))); A)3 B)4 C)6 D)8 10.请阅读以下程序: #include do{s[j]+=s[j+1]; }while(++j<2); } main( ) { int k,a[10]={1,2,3,4,5}; for(k=1;k<3;k++) fun(a); for(k=0;k<5;k++) printf(\[k]); } 上面程序的输出是( )。 A)34756 B)23445 C)35745 D)12345 第24页/35页 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库C语言2-10章练习(6)在线全文阅读。
相关推荐: