c语言复习试题
更新时间:2024-04-20 11:14:01 阅读量: 综合文库 文档下载
- c语言复数运算推荐度:
- 相关推荐
《C语言程序设计》试题库
一、选择题
10、以下选项中不合法的用户标识符是 ( )
在C的用户标识符命名规则中 标识符是要以下划线或字母开头的,标识符中只允许出现字母 下划线,数字,不允许有小数点。而且还区分大小写。故Main PRINTF不是关键字可以作为用户标识符。
A、_123 B、 printf C、 A$ D、 Dim 11、c语言中运算对象必须是整型的运算符是( )
A、% B、 / C、 ! D、 **
13、若变量已正确定义并赋值,符合C语言语法的表达式是( )
A、 a=a+7; B、a=7+b+c,a++ C、 int(12.3%4) D、 a=a+7=c+b
19、 若有定义:int a=8,b=5,c;执行语句c=a/b+0.4;后,c的值为( )。
A、1.4 B、1 C、2.0 D、2 20、char型数据在内存中的存储形式是( )
A、补码 B、反码 C、原码 D、ASCII码(规定的,虽然还是以二进制存)
23、 若变量a是int类型,并执行了语句:a=’A’+1.6;则正确的叙述是( )。
A、a的值是字符C B、a的值是浮点型
1
C、不允许字符型和浮点型相加 D、a的值是字符’A’的ASCII值加上1
24.、以下选项中合法的字符常量是( )。
A、“B” B、’\\ 010’ C、68 D、D 27、以下程序的输出结果是( )
A、0 B、1 C、3 D、不确定的值 main () {int x=10,y=3;
printf(“%d\\n”,y=x/y); }
29、若变量已正确定义为int类型,要给a、b、c输入数据,以下正确的输入语句是( )
A、read(a,b,c);
B、scanf(“%d%d%d”a,b,c); C、
scanf(“%D%D%D”,&a,&b,&c);
D、scanf(“%d%d%d”,&a,&b,&c);
32、若变量已正确定义,要将a和b中的数进行交换,下面选项中不正确的是( )
A、float B、 char C、int D、 double 39、下列运算符中优先级最高的运算符是( )
A、! B、% C、-= D、&&
40、下列运算符中优先级最低运算符是( ) A、|| B、!= C、〈= D、+
41、为表示关系 x≥y≥z, 应使用的C语言表达式是( )
2
A、 (x>=y)&&(y>=z) B、(x>=y)AND(y>=z) C、 (x>=y>=z) D、(x>=y)&(y>=z)
43、 设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、
m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为( )。
A、0 B、1 C、2 D、3 45、以下程序的输出是( ) A、0 B、1 C、2 D、3 main()
{ int a=2,b=-1,c=2; if(b
if(b<0) c=0;
printf(“%d\\n”,c); }
46、设a,b 和c 都是int 型变量,且 a=3,b=4,c=5;则以下的表达式中,值为0的表达式是( )
A、 a&&b B、 a<=b C、 a||b+c&&b-c D、 !((a
{ int a=2,b=-1,c=2; if(a
if(b<0) c=0;
3
else c+=1; printf(“%d\\n”,c); }
49、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是( ) if(x>y) z=x;x=y;y=z;
A、x=10,y=20,z=30 B、x=20,y=30,z=30 C、x=20,y=30,z=10 D、x=20,y=30,z=20 50、以下程序的运行结果是( )
main( ){int m=5;
if(m++>5)printf(“%d\\n”,m); else printf(“%d\\n”,m--); }
A、4 B、5 C、6 D、7 51、若执行以下程序时从键盘上输入3和4,则输出结果是( A、14 B、16 C、18 D、20 main() { int a,b,s;
scanf(“%d%d”,&a,&b); s=a;
if(a
printf(“%d\\n”,s); }
4
)
52、运行以下程序,输出( )
A、**** B、&&&&
C、####&&&& D、有语法错误不能通过编译 main() { int k=-3;
if(k<=0)printf(“****\\n”); else printf(“&&&&\\n”); }
53、以下程序的输出结果是 ( )
main() { int x=2,y=-1,z=2; if(x A、3 B、2 C、1 D、0 57、以下程序段,int k=10;while(k=0)k=k+1;则下面描述中正确的是( )。 A、while循环执行10次 B、循环是无限循环 C、循环体语句一次也不执行 D、循环体语句执行一次 58. 以下程序中,while循环的循环次数是( )。 main() { int i=0; while(i<10) { 5 if(i<1) break; i++; } } A、1 B、10 C、6 D、死循环,不能确定次数 60、若执行以下程序时从键盘上输入9,则输出结果是 ( ) A、 11 B、 10 C、 9 D、 8 main() { int n; scanf(\ if(n++<10) printf(\ else printf(\ } 62、对于下面①,②两个循环语句,( )是正确的描述。 ①while(1) ; ②for( ; ; ) ; A、①②都是无限循环 B、①是无限循环,②错误 C、①循环一次,②错误 D、①②皆错误 63、语句while(!E);中的表达式!E等价于( ) A、E==0 B、E!=1 C、E!=0 D、E==1 64、下面程序段运行结果是( ) x=y=0;while(x<15) y++,x=x+(++y); pirntf(“%d,%d”,y,x); A、20,7 B、6,12 C、20,8 D、8,20 6 65、设有以下程序段 int x=0,s=0; while(! x!=0) s+=++x; printf(“%d”,s); 则( ) A、运行程序段后输出0 B、运行程序段后输出1(a!=0 ) C、程序段中的控制表达式是非法的 D、程序段执行无限次 66、下面程序段的运行结果是( ) int n=0; while(n++<=2); printf(“%d”,n); A、2 B、3 C、4 D、有语法错误 67、下面程序的运行结果是( ) #include {num++;printf(“%d ”,num);} } A、1 B、1 2 C、1 2 3 D、1 2 3 4 68、c语言中while和do-while循环的主要区别是( ) 71、若i为整型变量,则以下循环执行次数是( ) for(i=2;i==0;) printf(“%d”,i--); A、无限次 B、0次 C、1次 D、2次 72、下面程序的运行结果是( ) #include 7 main( ){ int y=10; do { y--;} while(--y); printf(“%d\\n”,y--); } A、-1 B、1 C、8 D、0 74、下面程序段的运行结果是( ) for(y=1;y<10;) y=((x=3*y,x+1),x-1); printf(“x=%d,y=%d”,x,y); A、x=27,y=27 B、x=12,y=13 C、x=15,y=1476、以下程序段输出结果是( ) A、 9 B、1 C、11 D、10 int k, j, s; for (k=2;k<6;k++,k++) { s=1; for(j=k; j<6;j++) s+=j; } printf(“%d\\n”,s); 78、以下程序段输出结果是( ) A、10 B、9 C、 10 D、9 9 8 9 8 8 7 8 7 7 6 int n=10; 8 、x=y=27 D while(n>7) { n--; printf(“%d\\n”,n); } 81、以下程序的输出结果是 ( ) A、741 B、8 5 2 C、963 D、875421 main() { int y=10; for(; y>0;y--) if(y%3==0) { printf (“%d”,--y) ;continue; } } 86、C语言中,字符(char)型数据在微机内存中的存储形式是( A、 反码 B、 补码 C、 EBCDIC码 D、 ASCII码87、设有定义语句char a=‘\\72’;,则变量a( ) A、 包含1个字符 B、 包含2个字符 C、 包含3个字符 D、 包含4个字符 88、C语言中不合法的字符常量是( ) A、‘\\xff’(扩展码) B、‘\\65’(八进制) C、‘&’‘\\028’(八进制,个位不能是8) 提示:十进制不用‘’,直接 赋值 89、C语言中不合法的字符串常量是( ) 9 ) D、 A、“121” B、‘y=’ C、 “\\n\\n” D、“ABCD\\x6d” 90、判断char型变量c是否为大写字母的最简单且正确的表达式是:( ) A、‘A’<=c<=‘Z’ B、 ( c>=‘A’)&(c<=‘Z’) C、(‘A’<=c )AND(‘Z’>=c) D、 ( c>=‘A’)&&(c<=‘Z’) 91、以下程序的输出结果是( ) A、因输出格式不合法,无正确输出 B、65,90 C、A,Y D、65,89 main() {char c1=’A’,c2=’Y’; printf(“%d,%d\\n”,c1,c2); } 98、以下程序的输出结果是( ) A、因变量无定义输出不定值 B、0 C、-1 D、1 #include “stdio.h” main() { printf(“%d\\n”,NULL) ;} 99、以下程序的输出结果是 A、5,2,3 B、-5,-12,-7 C、-5,-12,-17 D、5,-2,-7 void sub(int x, int y, int *z) 10 { *z=y-x;} main() { int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(“%d,%d,%d\\n”,a,b,c); } 103、在c语言中,引用数组元素时,其数组下标的数据类型允许是( ) A、整型常量 B、整型表达式 C、整型常量或整型表达式 D、任何类型的表达式 104、以下对一维整型数组a的正确说明是( ) A、int a(10); B、int n;scanf(“%d”,&n);int a[n]; C、int n=10,a[n]; D、#define SIZE 10 int [SIZE]; 105、以下能对一维数组a进行正确初始化的语句是( )。 A、int a[10]=(0,0,0,0,0); B、int a [10]={}; C、int a[]={10,12,56}; D、int a[]={‘10*1’}; 106、以下对二维数组a的正确说明是( )。 A、int a[3][]; B、float a (3,4); C、double a[1][4]; D、float a(3)(4); 107、若有说明:int a[3][4];则对a数组元素的正确引用是 ( ) 。 A、a[2][4] B、a[1,3] C、a[1+1][0] D、a(2)(1) 108、若有说明:int a[3][4];则对a数组元素的非法引用是 11 ( )。 A、a[0][2*1] B、a[1][3] C、a[4-2][0] D、a[0][4] 109、以下能对二维数组a进行正确初始化的语句是( )。 A、int a[2][]={{1,0,1},{5,2,3}}; B、int a[][3]={{1,2,3},{4,5,6}}; C 、 int a[2][4]={1,2,3},{4,5}{6}}; D 、 int a[][3]={{1,0,1}{},{1,1}}; 111、 若有说明:int a[3][4]={0};则下面正确的叙述是( )。 A、只有元素a[0][0]可得到初值0 B、数组a中每个元素均可得到初值0 C、数组a中各元素都可得到初值,但不一定为0 D、此说明语句不正确 113、若二维数组a有m列,则计算任一元素a[i][j]在数组中位置 的公式为( )。(假设a[0][0]位于数组的第一个位置上。) A、i*m+j B、j*m+I C、i*m+j-1 D、i*m+j+1 114、对以下说明语句的正确理解是( )。int a[10]={6,7,8,9,10}; A、将5个初值依次赋给a[1]至a[5] B、将5个初值依次赋给a[0]至a[4] C、将5个初值依次赋给a[6]至a[10] D、因为数组长度与初值的个数不相同,所以此语句不正确 115、若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大 12 小是( )。 A、2 B、3 C、4 D、无确定值 116、定义如下变量和数组: int k; int a[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是( )。 for (k=0;k<3;k++)printf(“%d”,a[k][2-k]); A、3 5 7 B、3 6 9 C、1 5 9 D、1 4 7 117、下面是对s的初始化,其中不正确的是( )。 A、char s[5]={“abc”}; B、char s[5]={‘a’,’b’,’c’}; C、char s[5]=””; D、char s[5]=”abcdef”; 122、有下面的程序段 char a[3],b[]=”China”; a=b; printf(“%s”,a); 则( )。 A、运行后将输出China B、运行后将输出Ch C、运行后将输出Chi D、编译出错 123、判断字符串a和b是否相等,应当使用( )。 A、if(a= =b) B、if(a=b) C、if(strcpy(a,b)) D、if(strcmp(a,b)) 124、判断字符串s1是否大于字符串s2,应当使用( )。 A、if(s1>s2) B、if(strcmp(s1,s2)) 13 C、if(srtcmp(s2,s1)>0) D、if(strcmp(s1,s2)>0) 128、以下正确的函数定义形式是( )。 A、double fun(int x,int y) B、double fun(int x;int y) C、double fun(int x,int y); D、double fun(int x,y); 130、以下正确的说法是( )。在C语言中 A、实参和与其对应的形参各占用独立的存储单元 B、实参和与其对应的形参共占用一个存储单元 C、只有当实参和与其对应的形参同名时才共占用存储单元 D、形参是虚拟的,不占用存储单元 131、以下不正确的说法是( )。C语言规定 A、实参可以是常量、变量或表达式 B、形参可以是常量、变量或表达式 C、实参可以为任意类型 D、形参应与其对应的实参类型一致 132、以下正确的说法是( )。 A、定义函数时,形参的类型说明可以放在函数体内 B、return后边的值不能为表达式 C、如果函数值的类型与返回值类型不一致,以函数值类型为准 D、如果形参与实参的类型不一致,以实参类型为准 14 133、 C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( )。 A、float型 B、int型 C、long型 D、double型 134、 C语言规定,函数返回值的类型是由( )。 A、return语句中的表达式类型所决定 B、调用该函数时的主调函数类型所决定 C、调用该函数时系统临时决定 D、在定义该函数时所指定的函数类型所决定 135、下面函数调用语句含有实参的个数为( )。 Func((exp1,exp2),(exp3,exp4,exp5)); (只要不在“”里面就是逗号运算符) A、1 B、2 C、4 D、5 138、若用数组名作为函数调用的实参,传递给形参的是( )。 A、数组的首地址 B、数组第一个元素的值 C、数组中全部元素的值 D、数组元素的个数 143、 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( ) A、自动(auto)B、静态(static)C、外部(extern)D、寄存器(register) 144、 以下程序的运行结果是( ) sub(int x,int y,int *z) 15 {*z=y-x;} main() { int a,b,c; sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);} printf(“M,M,M\\n”,a,b,c); } A、5, 2, 3 B、-5,-12,-7 C、-5,-12,-17 D、5,-2,-7 146、 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( ) main(){ int *p,*q,a,b; p=&a;printf(“input a:”); scanf(“%d”,*p); ??} A、*p表示的是指针变量p的地址 B、*p表示的是变量a的值,而不是变量a的地址 C、*p表示的是指针变量p的值 D、*p只能用来说明p是一个指针变量 148、 若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是( ) A、p1=&m;p2=&p1; B、p1=&m;p2=&n;*p1=*p2; C、p1=&m;p2=p1; D、p1=&m;*p2=*p1; 149、 设p1和p2是指向同一个字符串的指针变量,c为字符变量, 16 则以下不能正确执行的赋值语句是( ) A、c=*p1+*p2; B、p2=c; C、p1=p2; D、c=*p1*(*p2) 150、 下面判断正确的是( ) A、char *a=”china”;等价于char *a;*a=”china”; B 、 char str[10]={“china”}; 等 价 于 char str[10];str[]={”china”}; C、char *a=”china”;等价于char *s;s=”china”; D、char c[4]=”abc”,d[4]=”abc”;等价于c[4]=d[4]=”abc”; 151、 下面能正确进行的字符串赋值操作的是( ) A 、 char s[5]={“ABCDE”};B 、 char char s[5]={‘A’,’B’,’C’,’D’,’E’}; C、char *s;s=”ABCDE”; (指针特殊的字符串赋值) D、char *s;scanf(“%s”,s);(s没有初始化,是悬空的,会导致scanf崩溃) 152、 若有以下定义,则对a数组元素的正确因用是( ) int a[5],*p=a; A、*&a[5] B、a+2 C、*(p+5) D、*(a+2) 153、 若有定义:int a[2][3];则对a数组的第i行第j列元素值得正确引用为( ) A、*(*(a+i)+j) B、(a+i)[j] C、*(a+i+j) D、*(a+i)+j 154、 若有以下定义和语句,则对a数组元素地址的正确引用为 17 ( ) int a[2][3],(*p)[3]; p=a; A、*(p+2) B、p[2] C、p[1]+1 D、(p+1)+2 158、库函数strcpy用以复制字符串。若有以下定义和语句: char str1[]=”string”,str2[8],*str3,*str4=”string”; 则对库函数strcpy的不正确调用是( ) A、 strcpy(str1,”HELLO1”); B、 strcpy(str2,”HELLO2”); C、 strcpy(str3,”HEELO3”); D、 strcpy(str4,”HELLO4”); 159、若已定义: int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i; 其中0<=i<=9,则对a数组元素的引用不正确的是( ) A、a[p-a] B、 *(&a[i]) C、p[i] D、*(*(a+i)) 160、以下程序段给数组所有元素输入数据,应在下划线处填入的是 A、a+(i++) B、 &a[i+1] C、a+i D、&a[++i] main() {int a[10], i=0; while(i<10)scanf(“%d”,___): ??} 161、以下程序的输出结果是( ) A、3 B、4 C、1 D、2 18 main() { int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=a; printf(“%d\\n”,*(p+2) ); } 164、以下程序的输出结果是( ) A、 6 B、8 C、 4 D、2 main() { int a[]={2,4,6,8}, *p=a, i; for(i=0; i<4; i++) a[i]=*p++; printf(“%d\\n”,a[2]); } 174、以下程序的输出结果是( ) A、 1,5,9, B、1,4,7, C、3,5,7, D、3,6,9, main() {int i,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf(\ 176、以下能正确进行字符串赋值、赋初值的语句组是( ) A、 char s[5]={‘a’,’e’,’i’,’o’,’u’B、 char *s; s=”good!”; C、 char s[5]=”good!”; D、 char s[5]; s=”good”; 19 }; 177、以下程序段的输出结果是( ) char str[ ]=”ABCD”,*p=str; printf(“%d\\n”,*(p+4));(\\0为零,\\n为10) A、 68 B、 0 C、 字符D的地址 D、不确定的值 178、以下程序段的输出结果是( ) printf(“%d\\n”,strlen(“ATS\\n012\\1\\\\”));(\\后面加的跟在一起) A、 11 B、 10 C、 9 D、 8 181、以下程序的输出结果是( ) A、ABCD B、 A C、 D D、 ABCD BCD B C ABC CD C B AB D D A A main() { char s[ ]=”ABCD”, *p; for(p=s; p 182、设有如下定义Char *aa[2]={“abcd”,”ABCD”};(所以定义两位数组的指针时要加括号) 则以下叙述中正确的是( ) 20 A、aa数组元素中的值分别是字符串”abcd” 和”ABCD” B、aa是指针变量,它指向含有两个数组元素的字符型一维数组 C、aa数组的两个元素分别存放的是含有四个字符的一维数组的首地址 D、aa数组的两个元素中各自存放了字符’a’和’A’的地址 185、有以下程序 main() { int m=12,n=34; printf(\程序运行后的输出结果是( ) A、12353514 B、12353513 C、12343514 D、12343513 186、有以下语句:int b;char c[10];,则正确的输入语句是 ( ) A、scanf(\ B、 scanf(\ C、scanf(\ D、scanf(\ 190、以下能正确定义一维数组的选项是( ) A、int a[ ]={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]=\ 21 192、已有定义:char a[]=\以下叙述中正确的是 ( ) A、数组a和b的长度相同 B、a数组长度小于b数组长度 C、a数组长度大于b数组长度 D、上述说法都不对 195、以下叙述中错误的是 ( ) A、对于double类型数组,不可以直接用数组名对数组进行整体输入或输出 B、数组名代表的是数组所占存储区的首地址,其值不可改变 C、当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出\下标 越界\的出错信息 D、可以通过赋初值的方式确定数组元素的个数 201、 以下说法中正确的是( ) A) C 语言程序总是从第一个的函数开始执行 B) 在 C 语言程序中,要调用的函数必须在 main() 函数中定义 C) C 语言程序总是从 main() 函数开始执行 D) C 语言程序中的 main() 函数必须放在程序的开始部分 202、下列关于C语言用户标识符的叙述中正确的是( ) A) 用户标识符中可以出现在下划线和中划线(减号) B) 用户标识符中不可以出现中划线,但可以出现下划线 C) 用户标识符中可以出现下划线,但不可以放在用户标识符 22 的开头 D) 用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头 209、sizeof(double) 是 ( ) 。 A )一种函数调用 B )一个双精度型表达式 C )一个整型表达式 D )一个不合法的表达式 210、若有定义:int a=8,b=5,c; 执行语句c=b/a+0.4;后,c的值为( )。 A)0.4 B)1 C)2.0 D)0 211、若变量a是char类型,并执行了语句:a=?B?+1.6; 则正确的叙述是( )。 A)a的值是字符67.5 B)a的值是浮点型 C)不允许字符型和浮点型相加 D)a的值是字符?B? 的ASCII值加上1 213、以下选项中不合法的字符常量是( )。 A)“B” B)?\\010? C)?6? D)?D? 214、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(a>b)&&n运算后,n的值为( )。 A)0 B)1 C)2 D)3 215、putchar函数可以向终端输出一个()。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 23 219、已知ch是字符型变量,下面不正确的赋值语句是( )。 A) ch= ?a+b?; B) ch=?\\0?; C) ch=?7?+?9?; D) ch=5+9; 223、下列关于单目运算符++、--的叙述中正确的是( ) A) 它们的运算对象可以是任何变量和常量 B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D) 它们的运算对象可以是char型变量、int型变量和float型变量 225、以下程序的输出结果是 ( ) #include { int i=010 , j = 10; printf(\} A) 11,10 B) 9,10 C) 010,9 D) 10,9 226、已知在ASCII 代码中,字母A的序号为65,以下程序的输出的结果是( ) 。 # include { char c1='A', c2='C'; 24 printf(\} A) 因输出格式不合法,输出错误信息 B)65,C C)A,Y D)65,67 229、以下程序的输出结果是( ) 。 230、已知字母A的ASCII 码为十进制的65,下面程序的输出是( )。 main() { char ch1,ch2; ch1='B'+'4'-'3'; ch2='B'+'2'-'0'; printf(\} A) 67,D B) C,C C) C,D D) 不确定的值 233、逻辑运算符两侧运算对象是( )。 A) 只能是0和1 B) 只能是0或非0正数 C) 只能是整型或字符型数据 D) 可以是任何类型的数据 234、判断char型变量ch是否为大写字母的正确表达式是( )。 A) ?A?<=ch<=?Z? B) (ch>=?A?)&(ch<=?Z?) C) (ch>= ?A?)&&(ch<=?Z?) D) (?A?<= ch)AND(?Z?>= ch) 235、若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( )。 25 A) A%2==1 B) !(A%2==0) C) !(A%2) D) A%2 236、 设有:int a=10,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为 ( )。 A) 1 B) 2 C) 3 D) 0 238、已知int x=100,y=20,z=30;以下语句执行后x,y,z的值是( )。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=100, z=100 D) x=20, y=30, z=20 239、以下程序的运行结果是( )。 main() { int m=6; if(m++>5) printf( “%d\\n”,m); else ; printf( “%d\\n”,m--); } A) 4 B) 5 C) 6 D) 7 241、以下关于运算符优先顺序的描述中正确的是( )。(逻辑运算符不包括!) A) 关系运算符<算术运算符<赋值运算符<逻辑运算符 B) 逻辑运算符<关系运算符<算术运算符<赋值运算符 C) 赋值运算符<逻辑运算符<关系运算符<算术运算符 26 D) 算术运算符<关系运算符<赋值运算符<逻辑运算符 242、语句 while(!E); 中的条件 !E 等价于( )。 A)E = = 0 B)E!=1 C)E!=0 D) ~E 245、若x,y,z的初值均为1,则执行表达式w =++x || ++ y && ++ z后,x,y,z的值分别为( )。 (或运算遇到大于等于0就返回1.不再 向后计算。 ) A) x=1, y=1, z=2 B) x=2, y=2, z=2 C) x=1, y=2, z=1 D) x=2, y=1, z=1 249、对以下程序段描述正确的是( )。 250、若有如下语句 int x=-3; do{printf(\ 则上面程序段输出的是( )。 A) -5 B) 1和-2 C ) 3和0 D) 是死循环 27 二、程序填空题或写结果 1. 以下程序的运行结果是 main(){ int a=100; printf(“%d,”,++a); printf(“%d,”,a++);printf(“%d\\n”,a);} 2. 下面程序的运行结果是___________。 #include {int a,s,n,count; a=2;s=0;n=1;count=1; while(count<=7) {n=n*a;s=s+n;++count;} printf(“s=%d”,s); } 11. 以下程序的输出结果是 main() { int x=10,y=9; int a,b,c; a=(--x==y++)?--x:++y; b=x++;c=y; printf(“%d,%d,%d”,a,b,c); } 12. 以下程序输入3时,输出结果是 main() { int k;scanf(“%d”,&k); 28 switch(k) { case 1:printf(“%d”,k++); case 2:printf(“%d”,k++); case 3:printf(“%d”,k++); case 4:printf(“%d”,k++); break; default :printf(“FULL!”); } printf(“\\n”); } 以下程序的运行结果是__________。 main() {int x,y,z; x=1;y=2;z=3; x=y--<=x||x=y!=z; printf(“%d,%d”,x,y); } 当运行以下程序时,从键盘键入China#回车,则下面程序的运 行结果是 #include “stdio.h” main() { int v1=0,v2=0;char ch; while ((ch=getchar( ))!=’#’) switch(ch) { case ‘a’: 29 15. 18. case ‘h’: default :v1++ ; case ‘0’:v2++ ; } printf(“%d,%d\\n”,v1,v2); } 23. 以下程序的运行结果是_________。 main() {if(2*2= =5<2*2= =4) printf(“T”); else printf(“F”);} 24. 下面程序段是从键盘输入的字符中统计数字字符的个数,用换行 符结束循环。请填空。 int n=0,c; c=getchar(); while( c!=’\\n’ ) {if(___________________) n++; c=getchar(); } 27. 以下程序是输出100-200之间的全部素数,请填空。 #include for(m=101;m<=200;m=m+2) 30 { k=sqrt(m); for(i=2;i<=k;i++) if( ) break; if(i>=k+1) printf(“%d ”,m); } } 28. 以下程序是输出100以内能被3整除并且个位数为6的所有整数,请填空。 #include for(i=0; i<=9;i++) { j=i*10+6; if( ) continue; printf(“%d ”,j); } } 29. 以下程序是输出100以内能被3整除的数,请填空。 #include for(i=100; i<=200;i++) {if( i%3!=0 ) ; printf(“%d ”,i); } } 33. 下面程序的功能是从键盘输入10个整数中,找出第一个能被7 整除的数。若找到,打印此数后退出循环;若未找到,打印”not 31 exit”。请填空。 #include {printf(“%d”,a) ; ; } } if( ) printf(“not exist\\n”); } 36. 下面程序的运行结果是_____ __。 #include {int i,x,y; i=x=y=0; do {++i; if(i%2!=0) { x=x+i;i++; } y=y+i++;} while(i<=7) ; printf(“x=%d,y=%d\\n ”,x,y); } 38. 下面程序用来输出如下图案,请填空。 * * * * * * * * * 32 * * * * * * * main(){ int i,j; for(i=1; ;i++) { for(j=1;j<=20-4*i;j++) printf(“ ”); for(j=1; ;j++) printf(“ L”,’*’); printf(“\\n”); } } 41. 以下程序的功能是输入10个整数,求出其中的正数和。请填空。 main() { int i; float sum,a; for(sum=0,i=1;i<=10;i++) {scanf(“%f”,&a); if(a>0) ; } printf(“sum=%f”,sum);} 42. 以下程序的功能是从键盘输入n个数,当输入值为负数时结束输入,求这 n个数的平均数。请填空。 main() { int n; float sum,a; for(sum=0,a=0;a>=0;) {scanf(“%f”,&a); if(a<0) break; 33 else {sum=sum+a; ; } } printf(“ 为:%f ”,n,sum/n); } 44. 以下程序的输出结果是 void fun(int a,int b) { a=100;b=200;} main( ) { int a=5,b=7; fun(a,b); printf(“%d,%d\\n”,a,b);} 46. 以下程序的功能是统计正整数的各位数字中零的个数,并求各位数字中的最大者。请填空 #include main() { int n,count,max,t; count=max=0; scanf(“%d”,&n); do { t=n ; if(t==0) ++count; else if(max 34 这%d个数的平均值 }while(n); printf(“count=%d,max=%d”,count,max); } 47.以下程序的功能是:从键盘上输入若干个同学的成绩,统计并输 出最高成绩和最低成绩,当输入负数时结束输入,请填空: main( ) { float x, max, min; scanf ( “%f ”, &x ); max = x; min = x; while ( ) { if ( x>max ) max = x; if ( ) min = x; scanf (“%f ”, &x ); } printf( “ max= %f , min= %f \\n ”, max, min); } 49.以下程序统计从终端输入的字符中每个大写字母的个数,num[0] 统计字母A的个数,num[1]统计字母B的个数,其它依此类推,用#结束输入,请填空: #include “stdio.h” #include “ctype.h” 35 main( ) { int num[26] = {0}, i; char c; while ( != ‘# ’) if ( isupper ( c ) ) num [ ] += 1; } 50.以下fun函数的功能是将一个字符串的内容颠倒过来,请填空: #include “string.h” void fun ( char str[] ) { int i, j, k; for ( i=0, j= ; i { k= str[i]; str[i] = str[j]; str[j] = k; } } 51.已知数组中的值在0至9的范围内,统计每个整数的个数。请填空: #include “stdlib.h” #define M 50 #define N 10 getdata(int *s ) { int i; for (i=0;i stat( int *a, int c[]) /* 数组C用来统计整数的个数 36 */ { int j; for (j=0; j } main() { int a[M], c[N],i; getdata (a); stat( a , ); for(i=0; i 52.以下findmin返回数组s中最小元素的下标,数组中元素的个数 由t传入,请填空。 findmin(int s[ ], int t) { int k, p; for(p=0,k=p; p 54.以下程序的输出结果是( )。 main( ) { int arr[10],i,k = 0; 37 for (i = 0;i < 10;i ++) arr[i] = i; for (i = 0;i < 4;i ++) k += arr[i] + i; printf (“%d\\n”,k); } 55. 以下函数reverse是用来将字符数组的内容置逆。请填空。 reverse( char a[ ] ) { int i,c,j; for(i=0,j=strlen(a)-1;i { c=a[i]; ;a[j]=c; } } 57. 以下程序是用选择法对数组中10个整数由小到大排序。请填空。 main() { int i,j,k,a[10]={23,45,90,34,91,45,1,18,56,24}; for(i=0;i<9;i++) { k=i; for(j=i+1;j<10;j++) if(a[j] {t=a[k];a[k]=a[i];a[i]=t;} } printf(“the storted array;\\n”); for(i=0;i<10;i++) printf(“%d”,a[i]); } 38 65. 已知在ASCII码中,字母A的序号是65,以下程序的输出结果是 。 #include {char c1=?B?,c2=?C?; printf(“%d,%d\\n”,c1,c2); } 66. 当a=3,b=4,c=5时,写出下列各式的值。 a&&b的值为 ,!a&&b的值为 ,a||c的值为 ,!a||c的值为 。 69. 以下的输出结果是 。 main() { char c= ‘A’; printf( “c:dec=%d, ASCII=%c\\n”,c,c); } 73.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空。 int n=0,c; c=getchar(); while(____) { if(_____)n++; 39 c=getchar(); } 78. 设 i,j,k 均为 int 型变量 , 则执行完下面的 for 循环后,k 的值为 _____________ for(i=0,j=10; i<=j; i++,j--) k=i+j; 79. 下面程序的功能是 : 计算 1 到 10 之间奇数之和及偶数之和 , 请填空。 #include for(i=0;i<=10;i+=2) { a+=i; _____________ ; c+=b; } printf(\偶数之和 =%d\\n\ printf(\奇数之和 =%d\\n\ } 80. 下面程序的功能是 : 输出 100 以内能被 3 整除且个位数为 6 的所有整数 , 请填空。 40 #include for(i=0; _____________ ; i++) { j=i*10+6; if( _____________ ) continue; printf(\ } } 三、编程题 1、从键盘上输入三个小数,求出平均值并输出。 7、编写程序,输出从公元2000年至2020年所有闰年的年号,每输 出5个年号换一行,判断公元年是否为闰年的条件是: (1)公元年如能被4整除,而不能被100整除,则是闰年; (2)公元年如能被400整除也是闰年; 8、编写程序统计输入的一行中小写字母的个数并输出。 11、编写程序,输入a、b、c三个数,按由小到大增序输出。(要求 利用子函数编写) 14、编写程序 ,统计一行中数字字符的个数。 17、编写程序,输出50个小数中的最大值和最小值。 19、从键盘中输入若干个学生的期末成绩,当输入为负数时结束输入。 统计并输出这若干个学生的总分和平均分。 41 29、求一个4×4矩阵的对角线元素之和。 30、有一个数组,内放10个数,编程找出其中最小的数及其下标。 31、编写函数对传过来的10个整数按升序排序。 39、假设数组中有10个数据,要找的数据为x,如果找到报出位置,如果找不到提示检索不成功。 42
正在阅读:
c语言复习试题04-20
图拉尔根铜镍矿厚大矿体采矿方法优选08-20
药房人员工作总结(精选多篇)03-12
土地一级开发实施方案(终版) - 图文01-17
跨局快速车底归属及机车交路04-17
高等数学训练之数项级数07-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 试题
- 复习
- 语言
- 合工大 程序设计与艺术 实验三
- 第八节《医疗机构消毒技术规范》练习题
- 设计学生信息管理程序
- fluent模拟设置
- 2018届广东省金山中学、广雅中学、佛山一中高三下学期联考文科数
- 高中政治必修四第二单元知识点
- 脑筋急转弯第2篇
- 200万高清卡口+超速线圈技术方案 - 图文
- 日常生活中常用成语大全(四字成语)
- 2012年山东17地市中考题很全
- 油桶倒料车安全操作规程
- 机械制造工艺学试题库
- 产品“三包”规定细则(160311)
- 室外给水工程施工组织设计一
- 《基础设施和公用事业特许经营管理办法》(六部委令25号)
- “魏源,字文渊,建昌县人”阅读答案及翻译
- 太阳高度角计算练习题
- 高压开关柜燃弧试验
- 监理测量复核记录表
- 2018版汽车机油泵市场供需形势投资评估报告目录