《c语言练习题.docx》由会员分享,可在线阅读,更多相关《c语言练习题.docx(31页珍藏版)》请在装配图网上搜索。
1、41 选择题1. 以下关于数组的描述正确的是(c )。 A. 数组的大小是固定的,但可以有不同的类型的数组元素B. 数组的大小是可变的,但所有数组元素的类型必须相同C. 数组的大小是固定的,所有数组元素的类型必须相同D. 数组的大小是可变的,可以有不同的类型的数组元素2. 以下对一维整型数组a的正确说明是( D)。 A.int a(10); B. int n=10,an;C.int n; D. #define SIZE 10scanf(%d,&n); int aSIZE;int an; 3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是(C )。 A. 整型常量B. 整型表达式C. 。
2、整型常量或整型表达式D. 任何类型的表达式4. 以下对一维数组m进行正确初始化的是(C )。 A. int m10=(0,0,0,0) ; B. int m10= ;C. int m =0; D. int m10=10*2; 5. 若有定义:int bb 8;。则以下表达式中不能代表数组元bb1的地址的是( c)。 A. &bb0+1 B. &bb1 C. &bb0+ D. bb+16. 假定int类型变量占用两个字节,其有定义:int x10=0,2,4;,则数组x在内存中所占字节数是(B )。 A. 3 B. 6 C. 10 D. 207. 若有以下说明: int a12=1,2,3,4,。
3、5,6,7,8,9,10,11,12;char c=a,d,g;则数值为4的表达式是(D )A. ag-c B. a4 C. ad-c D. ad-c8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入(A )。 #includemain()int a10,i=0;while(i=0;i-) ai=10-i;printf(%d%d%d,a2,a5,a8);A. 258 B. 741 C. 852 D. 36911. 以下程序运行后,输出结果是( D)。 main()int n5=0,0,0,i,k=2;for(i=0;i=1);for(j=i-1;j=0;j-) printf(%d,a。
4、j);printf(n);A. 10000 B. 10010 C. 00110 D. 1010013. 以下程序运行后,输出结果是(A )。 main()int a10, a1 =1,3,6,9,10, a2 =2,4,7,8,15,i=0,j=0,k;for(k=0;k2!1 D. a2018. 若有定义:int b34=0;则下述正确的是( D) 。 A. 此定义语句不正确B. 没有元素可得初值0C. 数组b中各元素均为0D. 数组b中各元素可得初值但值不一定为019. 若有以下数组定义,其中不正确的是( D) 。 A. int a23;B int b3=0,1,2,3;C. int c1。
5、00100=0;D. int d3=1,2,1,2,3,1,2,3,4;20. 若有以下的定义:int t54;能正确引用t数组的表达式是(C )。A. t24 B. t50 C. t00 D. t0,021. 在定义int m 3=1,2,3,4,5,6;后,m10的值是( C)。 A. 4 B. 1 C. 2 D. 522. 在定义int n56后第10个元素是(C )。 A. n25 B. n24 C. n13 D. n1423. 若二维数组c有m列,则计算任一元素cij在数组中的位置的公式为( A)。(假设c00位于数组的第一个位置)A. i*m+j B. j*m+i C. i*m+j。
6、-1 D. i*m+j+124. 若有以下定义语句,则表达式“x11*x22”的值是( B)。 float x33=1.0,2.0,3.0,4.0,5.0,6.0;A. 0.0 B. 4.0 C. 5.0 D. 6.0 25. 以下程序运行后,输出结果是 (A )。 main() int a44=1,3,5,2,4,6,3,5,7;printf(%d%d%d%dn,a03,a12,a21,a30);A. 0650 B. 1470 C. 5430 D. 输出值不定26. 以下程序运行后,输出结果是( B)。 main() int aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2。
7、,9,6;int i,s=0;for(i=0;i= 0&chi456789,输出结果是(D )。 A. 123,456,789 B. 1,456,789C. 1,23,456,789 D. 1,23,456main() char s100; int c, i;scanf(%c,&c); scanf(%d,&i); scanf(%s,s);printf(%c,%d,%sn,c,i,s);39. 运行下面的程序,如果从键盘上输入: abc def则输出结果为( C)。A. a B. a C. ab D. abcdefb b cc c dd def#include#define N 6main() 。
8、char cN;int i=0;for( ;imain() char ss10=12345;strcat(ss, 6789 );gets(ss);printf(%sn,ss); A. ABC B. ABC9 C. 123456ABC D. ABC45678941. 判断两个字符串是否相等,正确的表达方式是(C )。A. while(s1=s2) B. while(s1=s2) C. while(strcmp(s1,s2)=0) D. while(strcmp(s1,s2)=0)42. 以下程序的输出结果是( A)。main() char str12= s,t,r,i,n,g; printf(%。
9、dn,strlen(str); A. 6 B. 7 C. 11 D. 1243. 若有以下程序片段: char str =abn012;printf(%d,strlen(str);上面程序片段的输出结果是 ( )。A. 3 B. 4 C. 6 D. 1244. 若有以下程序段,输出结果是( )。 char s =141141abct;printf (%dn,strlen(s);A. 9 B. 12 C. 13 D. 1445. 设有static char str =Beijing;则执行printf(%dn, strlen(strcpy(str,China);后的输出结果为 ( )。 A. 5。
10、 B. 7 C. 12 D. 1446. 以下程序运行后,输出结果是( )。 main() char cf35=AAAA,BBB,CC;printf(%sn,ch1);A. AAAA B. BBB C. BBBCC D. CC47. 以下程序运行后,输出的结果是( )。 #include #includemain() char w 10=ABCD,EFGH,IJKL,MNOP,k;for (k=1;kmain()int a20,i;for(i=0;imain()int a10=1,2,5,8,9,10, an=5,b10=1,3,4,8,12,18,bn=5;int i,j,k,c20,max。
11、=9999;aan+1=bbn+1=max;i=j=k=0;while(ai!=max)|(bj!=max)if(ai=0.0& nmain()int b16,x,k,r,i;printf(please input binary num to x); scanf(%d,&x);printf(%dn,x);k=-1;do r=x% 【1】 ;b+k=r;x/= 【2】 ;while(x=1);for(i=k; 【3】 ;i-)printf(%d,bi); printf(n); 9. 输入10个整数,用选择法排序后按从小到大的次序输出。 #define N 10main( ) int i,j,mi。
12、n,temp,aN;for(i=0;iaj) 【3】 ;temp=ai;ai=amin;amin=temp;for (i=0;i#define N 5main()int i,j,number,top,bott,min,loca,aN,flag;char c;printf(please input 5 numbers aiai-1n);scanf(%d,&a0); i=1;while(i=ai-1) i+; printf(n);for(i=0;iaN-1) loca=-1;while(loca=0)&(topmain()int a33=1,2,3,4,5,6,7,8,9,i,s1=0,s2=1;。
13、for(i=0;imain()int a34=3,-2,1,2,0,1,3,-2,3,1,0,4;int b34=-2,3,0,-1,1,0,-2,3,-2,0,1,-3;int i,j,c34;for(i=0;imain()int i, j, row, column,m;static int array33=100,200,300,28,72,-30,-850,2,6;m=array00;for (i=0; imain()static char str =h,e,l,l,o;char str15;【1】 ;for(i=0;i#include main() char a=clanguage,t。
14、;int i, j, k;k=strlen(a);for(i=0; i0) 【2】;printf(nThe first string is:%sn,temp);21. 以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1。请填空。#include main( ) char str1100,str2100,c;int i,s;printf(n input string 1:n); gets(str1);printf(n input string 2:n); gets(str2)。
15、;i=0;while(strli=str2i&(str1i!= 【1】)i+;s= 【2】 ;printf(%dn,s);22. 设有下列程序:#include#includemain() int i;char str10, temp10;gets(temp);for (i=0; i代表回车符):C+BASICQuickCAdaPascal则程序的输出结果是 ________。 23. 以下程序功能是:统计从终端输入的字符中每个大写字母的个数。用#号作为输入结束标志,请填空。#include #include main( ) int num26,i; char c;for(i=0; imain。
16、() int i ,j, k,count;char str120,str220;printf(zhu chuan:);gets(str1);printf(zi chuan:);gets(str2);【1】;for(i=0;str1i;i+)for(j=i,k=0;str1j=str2k;j+,k+)if ( 【2】 )count+;printf(chuxian cishu=%dn,count); 26. 下面程序完成以下功能:从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。#includemain()char s81;int i , c, num=0,word=0;【1】;for。
17、(i=0;(c=si)!=0;i+)if(c=32) 【2】;else if (word=0) word=1; 【3】; printf(there are %d words.n,num); 27. 下面程序完成功能是:判定用户输入的正整数是否为“回文数”,所谓“回文数”是指正读反读都相同的数。请填空。#includemain() int buffer10, i,k,flag;long number ,n;printf(please input one number);scanf(%ld,&number);k=0;n=number;do 【1】 ;k=k+1;n=n/10;while (n!=0);flag=1;for( i=0;i=(k-1)/2;i+)if ( 【2】 )flag=0;if(flag) printf(%ld is huiwenshun,number);else printf(%ld is not huiwenshun,number。