当前位置:首页 > C语言全部考试系统题库含答案
}
F8. 以下程序从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用i统计大于零的个数,用变量j统计小于零的整数。请填空。 void main() { int n,i,j; i=0;j=0;
printf(“Enter INT numbers,with 0 to end\\n”); scanf(“%d”,&n);
while(
printf(“i=M j=M\\n”,i,j); }
F9. 以下程序用“辗转相除法”来求出两个正整数的最大公约数。请填空。若两个数分别放在m和n中,求最大公约数的算法如下: (1) 将两数中最大的那个放在m中,小的放在n中。 (2) 求出m被n除后的余数r。
(3) 若余数为0则执行步骤(7);否则执行步骤(4)。 (4) 把除数作为新的被除数;把余数作为新的除数。 (5) 求出新的余数r。 (6) 重复步骤(3)到(5)。
(7) 输出n,n即为最大公约数。 void main() { int r,m,n;
printf(“Enter m,n:”); scanf(“%d%d”,<&m,&n>);
printf(“m=%d n=%d\\n”,m,n); if (m {r=m;m=n;n=r;} r= R10. 以下程序可判断输入的一个字符是否为小写字母,如果是,则转换为对应的大写字母并输出;否则,就原样输出。请填空。 #include “stdio.h” void main() { char k; printf(“Enter a character here:”); scanf(“%c”,<&k>); if( printf(“%c\\n”,k); } 1.程序打印如下形式的图形 * * * * * * * * * * main() { for(int i=1;i<=4;i++) { for(int j=1; ① j<=i ;j++) printf( ②”*” ); printf( ③ “\\n” ); } } 2.充下列程序,找出100—200之间的全部素数 # include “math.h” main() { int m,k,i,n=0; for (m=101;m<=200;m=m+2) { k=sqrt(m); for ( i=2; (6)_i<=k___ ; i++ ) if ( (7)__m%i==0 __ ___ ) break; if ( (8)__i>k________ ) { printf(“%d”,m); n=n+1; } if (n==0) printf(“\\n”); } printf(“\\n”); } 3. 第三章 数组(正确的填A,错误的填B) 一、 判断题 1.字符串“girl”大于字符串“good”。(B) 2.C语言中有字符串变量,与字符数组等价。( B ) R3.同一数组可以存储不同类型的值。(?B ) N4.若有:int a[2][3]; 则 a+1 和 a[1] 的值以及类型都一样。(B) R5.字符 '\\0' 的值就是 0 。(A) 6.C语言中是用字符串变量来存放字符串。( B) 7. 表达式sizeof(\)的值是 4 。(B) A N8. 同数组的名字一样,函数的名字也是一种指针。(A) 9、C语言中在定义数组时,一个数组的数组元素的数据类型可以不相同;(B) 10、char a[10];a[10]=9;上述语句编译不会出错;(A) B R11.数组元素的下标是从1开始标号的。( B ) N12.若a为一维数组名,则*(a+i)与a[i]等价。( A ) 13.循环语句中的continue语句的作用是结束整个循环。( B ) 14.字符串\小于字符串\。( A ) 15.字符个数多的字符串比字符个数少的字符串大。( B ) 有以下语句:int b;char c[10];,则正确的输入语句是 16) scanf(\ 17) scanf(\18) scanf(\ 19) scanf(\ 已有定义:char a[]=\以下叙述中正确的是 20 数组a和b的长度相同 21 a数组长度小于b数组长度 22 a数组长度大于b数组长度 设有数组定义:char array[]=\;则数组array所占的存贮空间为 个字节. 23 4 24 5 25 6 26 7 若定义int x[10];则Turbo C编译系统为该数组分配 个字节存储单元。 27 .10 28 .11 29 .20 30 .21 二、 单项选择题 R1、对两个数组a和b进行如下初始化 char a[]=\ char b[]={’A’,’B’,’C’,’D’,’E’,’F’}; 则以下叙述正确的是 ( ) A) a与b数组完全相同 B) a与b长度相同? C) a和b中都存放字符串 D) a数组比b数组长度长 R2.若有说明:int a[3][4];则对a数组元素的正确引用是( ) A.a[2][4] B.a[1,3] C.a[1+1][0] D.a(2)(1) R3.合法的数组定义是 ( ) A、int a[]=\ B、int a[5]={0,1,2,3,4,5}; C、vhst s=\D、char a[]={0,1,2,3,4,5}; 4.以下正确的声明是( )。 A. int a[1][4]={1,2,3,4,5}; B. float x[3][]={{1},{2},{3}}; C. long b[2][3]={{1},{1,2},{1,2,3}}; D. double y[][3]={0}; 5下列语句的执行结果是( )。 static char str[10]={“china”}; printf(“%d”,strlen(str)); A.10 B.6 C.5 D.0 R6、以下能正确定义一维数组的选项是 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]=\7.下面程序段的运行结果是( )。 char a[7]=”abcdef”; char b[4]=”ABC”; strcpy(a,b); printf(“%c”,a[5]); A.空格 B.\\0 C.e D.f 8定义如下变量和数组,则输出结果是( )。 int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf(\ A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9 9.下列对一维数组a的正确说明语句为( )。 A) int a(10); B) int n=10, a[n]; C) int n; scanf(\D) #define SIZE 10 int a[SIZE]; 10.下列二维数组的说明中,不正确的是( ) A、float a[3*8][7-3] B、float a[][3]={0,1,8}; C、#define L 3 float a[L][3] D、int a[6],[7] 11. 执行以下程序段后,s的值是 int a[]={5,3,7,2,1,5,4,10}; int s=0,k; for(k=0;k<8;k+=2) s+=*(a+k); A、17 B、27 C、13 D、无定值 12. 若有定义:char c[10];从键盘输入“LiFang”,则正确的函数引用是( ) A.scanf(“%c”,&c[10]); B.gets(c); C.scanf(“%s”,&c); D.gets(c[10]);
共分享92篇相关文档