目录
目录 (1)
单元练习题一C语言基础知识 (3)
一、判断题 (3)
二、单项选择题 (4)
三、读程序选择题 (7)
四、程序填空题 (8)
五、编程题............................................................................................. 错误!未定义书签。单元练习题二C语言程序结构 .. (9)
一、判断题 (9)
二、单项选择题 (9)
三、读程序选择题......................................................................... 错误!未定义书签。
四、程序填空题 (17)
五、编程题..................................................................................... 错误!未定义书签。单元练习题三数组.. (21)
一、判断题 (21)
二、单项选择题 (22)
三、读程序选择题................................................................................. 错误!未定义书签。
四、程序填空题 (28)
五、编程题............................................................................................. 错误!未定义书签。单元练习题四函数.. (33)
一、判断题 (33)
二、单项选择题 (34)
三、读程序选择题 (40)
四、程序填空题..................................................................................... 错误!未定义书签。
五、编程题............................................................................................. 错误!未定义书签。单元练习题五预处理................................................................................... 错误!未定义书签。
一、判断题..................................................................................... 错误!未定义书签。
二、单项选择题............................................................................. 错误!未定义书签。
三、读程序选择题................................................................................. 错误!未定义书签。
四、程序填空题..................................................................................... 错误!未定义书签。
五、编程题............................................................................................. 错误!未定义书签。单元练习题六指针.. (45)
一、判断题 (45)
二、单项选择题 (46)
三、读程序选择题................................................................................. 错误!未定义书签。
四、程序填空题 (54)
五、编程题............................................................................................. 错误!未定义书签。单元练习题七结构体与共用体 (58)
一、判断题 (58)
二、单项选择题 (60)
三、读程序选择题................................................................................. 错误!未定义书签。
四、程序填空题 (68)
五、编程题............................................................................................. 错误!未定义书签。单元练习题八文件.. (72)
一、判断题 (72)
二、单项选择题 (73)
三、读程序选择题 (77)
四、程序填空题 (77)
五、编程题............................................................................................. 错误!未定义书签。
第一章C语言基础知识
(C语言概述、算法、数据类型运算符表达式、位运算)一、判断题
R1.在C语言中,逗号运算符的优先级最低。
2.在C语言可执行程序的开始执行点是程序中第一个函数。
3.“5ch”是合法的变量名。
R4.C语言程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。
5.当输入数据时,必须指明变量的地址,如scanf("%f",&f)
N6.表达式i++与++i在任何场合功能完全相同。
7.在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。Float a; int b=1;a=b;
R8.C语言程序中,语句以逗号结尾。()
9.在C 程序中,APH 和aph 代表不同的变量。( )
10. a-=7等价于a=a-7。( )
N11. printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按原字符长从左向右全部输出。( )
12.如果x>y为真或ay)&&(a
13.C语言程序的变量必须先定义再使用。( )
14.若a和b是同类型变量,在执行了赋值语句a=b;后b中的值将放入a中,b 中的值将丢失。( )
15.程序的执行总是从main函数开始,在程序的最后一个函数中结束。( )
N16.变量的三个属性是指变量的名字、变量的值和变量在内存中的地址。()
17.运算符优先顺序:赋值运算符<逻辑运算符<关系运算符<算术运算符()
18.对应float类型的变量,也可以用等号“==”进行数值的判断。()
19.表达式:1 && 3.14 和 1 & 3 的值一样大。()01&11=1
20. 为了正确计算表达式既要考虑运算符的优先级,也要考虑其结合性。()
21、任何C程序都是从main函数开始和结束;
22. 在C程序中,使用分号“;”表示语句的结束。()
23. C程序中的必须要有至少一个main的函数,可以有多个。()
24. 在C程序中,无论是整数还是实数,都能准确无误的表示。()
25. 在C程序中,赋值运算符的优先级最低。()
26. 当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值。()
27. 在C程序中,变量可以一边定义一边使用。()
28. C程序中的注释部分可有可无,可以省略。()
29.字符型变量可以存放多个字符。( )
30.在对一个C程序进行编译的过程中,可发现注释中的拼写错误。( )
5.在C程序中,无论是整数还是实数,都能被准确无误地表示。( )
1.一个C程序的执行是从本程序的main函数开始,到main函数结束。()
3.()
4.运算符优先顺序:赋值运算符<逻辑运算符<关系运算符<算术运算符()
二、单项选择题
R1、以下标识符中,不能作为合法的C用户定义标识符的是:( )
A .a3_b3 B.void C._123 D.abc
R2、C语言规定:在一个源程序中,main函数的位置()。
A.必须在最后
B.必须在系统调用的库函数的后面。
C.必须在最开始。
D.可以任意
R3、下列说法中正确的是()。
A. C程序书写时,不区分大小写字母
B. C程序书写时,一行只能写一个语句
C. C程序书写时,一个语句可分成几行书写
D. C程序书写时每行必须有行号
4、已知ch是字符型变量,下面不正确的赋值语句是()。
A.ch = 5 + 9 ;
B.ch= ' a' + b ';
C. ch = ' \ 0 ';
D. ch= '7' + '6' ;
5、若有定义:int a = 7; float x = 2.5 , y = 4.7 ; 则表达式
x + a % 3 * (int) (x + y) % 2/4 的值是()。
A. 2.750000
B. 0.00000
C. 3.500000
D. 2.500000
6.已知ch是字符型变量,下面正确的赋值语句是()。
A.ch = '123' ;
B. ch=' \08 ';
C. ch =' \xff ';
D.ch =" \ ";
1. 以下标识符中,不能作为合法的C用户定义标识符的是:____________。
A)a3_b3 B)void C)_123 D)abc
2.C语言中,运算对象必须是整型的运算符是__________。
A) % B) / C) %和/ D) *
7. 在C 程序中,用___________表示逻辑值“真”。
A)1 B)非0 的数C)非1 的数D) 大于0 的数
N8.设int c=5和int a; a=2+(c+=c,c+8,++c), 则a=__________
A) 15 B) 14 C) 13 D) 16
9.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符________。
A)必须为字母或下划线。B)必须为下划线。
C)必须为字母D)可以是字母、数字和下划线中的任一种字符。
10. 若变量已正确定义并赋值,表达式____________不符合C语言语法。
A)a*b/c; B)3.14%2 C)2, b D)a/b/c
11. 下列说法中正确的是___________。
A) C程序书写时,不区分大表达式小写字母
B) C程序书写时,一行只能写一个语句
C) C程序书写时,一个语句可分成几行书写
D) C程序书写时每行必须有行号
12.为表示数学关系x≥y≥z,正确的C语言表达式是__________。
A) (x>=y)&&(y>=z) B) (x>=y)AND(y>=z)
C) (x>=y>=z) D) (x>=y)&(y>=z)
13.不合法的八进制数是________
A) 0 B) 028 C) 077 D)01
14、以下不能定义为用户标识符是
A Main
B _0
C _int
D sizeof
15.若x=5,y=4 则y*=x+5;等价于y=y*(x+5) y的值为()。
A. 40
B. 20 C B. 15 D. 30
16、组成C语言程序的基本单位是()。
A) 过程 B) 子程序
C) 函数 D) 主程序和子程序
17.下列哪个标识符是C语言合法的标识符()。
A) a*b B) -xyz
C) ba2 D) 5i
N18.若有定义:int a=7; float x=2.5, y=4.7; 则表达式x+a%3*(int)(x+y)/4的值是()。
A) 2.75 B) 3.5
C) 2.5 D) 0
19.设int m=1,n=2;则++m= =n的结果是()
A、0
B、1
C、2
D、3
N20. 若变量已定义并赋值,下列符合C语法的表达式是:()
A、a:=b+1
B、a=b=c+2
C、int 18.5%3
D、a=a+7=c+b
R(3)在C程序中,设一表达式中包含有int,long, unsigned和char类型的变量和数据,则表达式最后的运算结果类型是( )
A.int
B.char
C.unsigned
D.long
R21.C语言中基本的数据类型包括__________。
A) 整型、实型、逻辑型B) 整型、实型、字符型
C) 整型、字符型、逻辑型D) 整型、实型、逻辑型、字符型
N22. 若定义x和y为double类型,则表达式:x=2,y=x+5/2的值是__________
A) 4 B) 4.5 C) 4.0 D) 3.0
23. 在以下运算符中,优先级最高的运算符是__________
A) ? : B) ++ C) && D) +=
24.C语言中基本的数据类型不包括__________。
A) 整型B)字符串型
C)字符型D)实型
25. 若定义int x=7,y=5,z;则表达式:z=x+5/2*y的值是__________
A) 7 B) 7.5 C) 17 D) 19.5
6.以下说法中正确的是()
A、C语言程序总是从第一个定义的函数开始执行
B、在C语言程序中,要调用的函数必须在main()函数中定义
C、C语言程序总是从main()函数开始执行
D、C语言程序中的main()函数必须放在程序的开始部分
(1)设int a=2,b;则执行b=a&&1;语句后,b的结果是( )
A.0
B.1
C.2
D.3
N(2)逗号表达式(a=3*5,a*4),a+15的值是( )
A.15
B.60
C.30
D.75
7. 若已经定义了一个字符型变量为a,下面哪个表达式的含义跟其余表达式不同:
A) a!=0 B) a!=’\0’C) a D) !a
8. 在以下运算符中,优先级最高的运算符是__________
A) , B) [] C) && D) +=
9. 在C语言中,逻辑值“真”用__________表示。
A) true B) 大于0的数C) 非0的整数D) 非0的数
10. 表达式__________是满足:当c的值为1、3、5三个数中任意一个时值为“真”,否则值为“假”的表达式
A) (c=1)||(c=3)||(c=5) B) (c!=1)&&(c!=3)&&(c!=5)
C) (c==1)&&(c==3)&&(c=5) D) (c==1)||(c==3)||(c==5)
1.C语言中,int类型数据占2个字节,则long类型数据占()
A、1个字节
B、2 个字节
C、3个字节
D、4个字节
1.下列字符串是合法的标识符的是( )。
A、_HJ
B、9_student
C、long
D、LINE 1
2.下列说法中正确的是( )。
A、 C程序书写时,不区分大小写字母
B、 C程序书写时,一行只能写一个语句
C、 C 程序书写时,一个语句可分成几行书写
D、 C程序书写时每行必须有行号
3.在C语言中,要求参加运算的数必须是整数的运算符是( )。
A、/
B、!
C、%
D、= =
4.C语言中,逻辑“真“等价于( )。
A、大于零的数
B、大于零的整数
C、非零的数
D、非零的整数
6.假设在程序中a,b,c均被定义为整型,并且已赋大于1的值,则下列能正确表示
代数式1/abc的表达式是( )。
A、1/a*b*c
B、1/(a*b*c)
C、1/a/b/(float) c
D、1.0/a/b/c
1.下列合法的字符常量是()。
A、'\084'
B、'\x43'
C、'ab'
D、"\0"
2.在C语言提供的合法的关键字是()
A、switch
B、cher
C、Case
D、sturct
3.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是
A、2
B、1
C、2.0
D、2.5
三、程序填空题
1以下程序不用第三个变量实现两个数对调的操作。
#includ “stdio.h”
main()
{
int a,b;
scanf("%d,%d",&a,&b);//5,10
a=;(三个字符)
b=
a= a-b;
printf("%d,%d",a,b);
}
2、选择程序的运行结果。
main ( )
{ int x=1, y=2, z, a, b, c, d;
z = ++x||++y;
printf("x=%d\n", x);
printf("y=%d\n", y); /*输出结果
a=-1; b=-2; c=++a&&b++;
printf("b=%d\n", b); /*输出结果 (三个字符)*/ }
3以下程序的结果为_______
main()
{
unsigned int a=3, b=10;
printf("%d\n",a<<2|b>>1); /*输出结果<14> */
printf("%d\n",a<<2&b>>1); /*输出结果<0> */
}
4 若x=3,y=z=4,则下列表达式的值是。
(1) (z>=y>=x)? 1:0
/*值为<0> */
(2) z>=y&&y>=x
/*值为<1> */
5已知float x=4.3,int y;执行语句y=(int)x后,x为
6表达式’c’&&’d’的值为<1>(填写阿拉伯数字),’c’&&’d’||!(3+4)的值为<1>(填写阿拉伯数字)。
7若x为int类型,则与逻辑表达式“x”等价的表达式是
8 表示“整数x的值大于5”时逻辑值为“真”的表达式是
9已知字母A的ASCII码为十进制数65,且设ch为字符型变量,则表达式ch=‘A’-‘4’+‘9’的值为(一个字符常量);若定义:char c=‘\72’;则变量c中包含的字符个数为<1>(数字)。
10、C语言所提供的基本数据类型的整型类型包括:<短整型>、整型、<长整型>。(按每种类型所占字节数,从小到大排列)
第二章C语言程序结构
(顺序程序设计、选择结构程序设计、循环控制)一、判断题
1.do-while语句中的条件为非0时,就结束该循环。
2.在switch-case语句中,不是每个case后都要使用break语句。()
3.Break语句只能用于循环结构中。()
48. 未给变量赋初值,只是运行结果不正确,不会有其他不良影响。()
5、switch语句中,可以不使用break语句;
6、for语句中,三个表达式都可以省略;
7(7)在for循环中使用break语句的目的是使流程跳出循环体,终止当前循环8. continue语句只能用于循环语句中。()
9.while语句中的条件为0时,就结束该循环。
10.在循环体内使用break语句或continue语句的作用相同。()
在C语言中,逻辑值“真”用表示。
11) 1 12) 大于0的数13) 非0的整数14) 非0的数
在循环语句的循环体中,continue语句的作用是()。
15) 立即终止整个循环 16) 继续执行continue语句之后的循环体
17) 结束本次循环 18) 结束本次循环并跳出循环
语句while(!e);中,条件!e等价于( )
19.e==0 20 .e!=0 21.e!=1 22.e==1
设int c=5和int a; a=2+(c+=c++,c+8,++c), 则a=__________
23) 15 24) 14 25) 13 26) 16
c=c+c++
若要表示if( a不等于0 )这一关系式,则能正确表示这一关系的表达式为if ( )
27) a<>0 28) !a 29) a=0 30) a
二、单项选择题
N1、以下不是死循环的语句是_______。
for( ; ; x+i );
while (1) {x++;}
for( i=10; ; i- -) sum+= i ;
for( ; (c=getchar()) != …\n? ; ) printf(“%c” , c) ;
2.设有程序段
int k = 10 ;
while ( k = 0 ) k = k - 1 ;
以下描述正确的是()。
A. 循环体语句一次也不执行。
B. 循环是无限循环。
C. while 循环语句执行十次。
D. 循环体语句执行一次。
N3.对下述程序,正确的判断是()。
main( )
{ int a,b;
scanf ("%d,%d",&a,&b);
if(a>b)a=b; b=a;
else a++; b++;
printf("%d,%d",a,b);
}
A. 有语法错误不能通过编译
B. 若输入4,5则输出5,6
C. 若输入5,4则输出4,5
D. 若输入5,4则输出5,5
R4.以下程序
main()
{
int i=010,j=10,k=0x10;
printf("%d,%d,%d\n",i,j,k);
}有语法错误不能通过编译
输出结果是( )
A.8,10,16
B.8,10,10
C.10,10,10
D.10,10,16
R5. 若变量已正确说明为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);
R6.已知在ASCII字符集中,字符0的ASCII值为48,下面程序的输出结果为__________。
main()
{
char x,y;
x=’0’;y=’9’;
pirntf(“%d,%d\n”,x,y);
}
A)因输出格式不合法,输出错误信息B)48,57
C)0,9 D)48,58
7. 语句for(k=0;k<5;++k)
{
if(k= = 3)continue;
printf(“%d”,k);
}的输出结果为_________。
A)012 B) 0124 C) 01234 D) 没有输出结果
8.为表示关系x>=y>=z,应使用C语言表达式___________。
A)(y<=x)&&(y>=z) B)(x>=y)AND(y>=z)
C)(x>=y>=z) D)(x>=y)&(y>=z)
6. 若变量已正确定义,语句“if(a>b) k=0; else k=1;”和___________等价。
A、k=(a>b)?1:0;
B、k=a>b;
C、k=a<=b;
D、a<=b ? 0 : 1;
9.以下程序的输出结果是__________
void main()
{
int a = 2,b = 5;
printf(“a=%%%d,b=%%%d”,a,b);
}
A) a=%2,b=%5 B) a=2,b=5
C) a=%%d,b=%%d D) a=%d,b=%d
N10.以下程序的输出结果是__________
void main()
{ int x=10,y=10;
printf(“%d %d\n”,x--,--y);
}
A) 10 10 B) 9 9 C) 9 10 D) 10 9
11.若要表示if( a不等于0 )这一关系式,则能正确表示这一关系的表达式为 if (__________)
A) a<>0 B) !a C) a=0 D) a
R12对于循环语句while(1);下面()是正确的
A、死循环
B、循环一次
C、不进入循环体
D、编译有错
13.下面程序的输出是(假设 int 数据是 2 个字节)
void main()
{ int a = 32768;
printf(“a=%d\n”,a);
}
A) a=32768 B) a=32767 C) a=-32768 D) a=-1
14.表达式__________是满足:当c的值为1、3、5三个数中任意一个时值为“真”,否则值为“假”的表达式
A) (c=1)||(c=3)||(c=5) B) (c!=1)&&(c!=3)&&(c!=5)
C) (c==1)&&(c==3)&&(c=5) D) (c==1)||(c==3)||(c==5)
N15.以下程序段的输出结果是_____
int x=3;
do
{ printf("%3d",x-=2;}
while (!(--x));
A) 1 B) 3 0
C) 1 -2 D) 死循环
16、数字字符0的ASCII值为48,若有以下程序
main()
{
char a='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是
A 3,2
B 50,2
C 2,2
D 2,50
17、有以下程序
main()
{
int a,b,d=25;
a = d/10 & (-1);
b = a && (-1);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是
A 6,1
B 2,1
C 6,0
D 2,0
18.若定义float a;现要从键盘输入a的数据,其整数位为3位,小数位为2位,则选用()。
A)scanf("%f",&a); B) scanf("%5.2f",a);
C) scanf("%6.2f",&a); D) scanf("%f",a);
19.若定义int i; 则以下循环语句的循环执行次数是()。
for(i=2; i==0;)
printf("%d", i--);
A) 无限次 B) 0次
C) 1次D) 2次
20.下面程序段___
x=3;
do
{
y=x--;
if(!y){printf("x");continue;}
printf("#");
}
while(1<=x<=2);
A) 将输出## B) 将输出##*
C) 是死循环D) 含有不合法的控制表达式
21.以下程序中,while循环的循环次数是( )。
#include “stdio.h”
main( )
{int i=0;
while(i<10)
{if(i<1)continue;
if(i= =5)break;
i++;
}
}
A、1
B、10
C、6
D、死循环,不能确定次数
N 22.有以下程序:
#include “stdio.h”
int a=3;
main( )
{
int s=0;
{
int a=5;
s+=a++;
}
s+=a++;printf("%d\n",s);
}
程序运行后的输出结果是( )。
A、8
B、10
C、7
D、11
23(4)下面程序段的运行结果是( )
main ( )
{int a=11,b=10,c=0;
a/=b+(b&&c);
printf(″%d\n″a);}
A.0
B.1
C.1.1
D.11
24(5)两次运行下面程序,如果从键盘上分别输入6和4,则程序的输出结果是( ) main ( )
{int x;
scanf(″%d″,&x);
if(x++>5) printf(″%d″,x);
else printf(″%d\n″,x-1);}
A.7和5
B.6和3
C.7和4
D.6和4
(6)语句while(!e);中,条件!e等价于( )
A.e=0
B.e!=0
C.e!=1
D.e==0
R25下面程序的输出是______
main()
{
int k=11;
printf("k=%d,k=%o,k=%x\n",k,k,k);
}
A) k=11,k=12,k=13 B) k=11,k=13,k=13
C) k=11,k=013,k=oXb D) k=11,k=13,k=b
26(7)下面程序的运行结果是( )
main( )
{int i=1,sum=0;
lop:sum=sum+i ;
i=i+2;
if(i<6)goto lop;
printf (″sum=%d\n″,sum);}
A.sum=4
B.sum=9
C.sum=16
D.sum=25
27. 以下程序的输出结果是__________
void main(){
int a = 2,b = 5;
printf(“a=%%%d,b=%%%d”,a,b);
}
A) a=%2,b=%5 B) a=2,b=5
C) a=%%d,b=%%d D) a=%d,b=%d
28执行下面的程序后,a的值为_____
main()
{ int a,b;
for (a=1,b=1;a<100;a++)
{
if (b>=20) break;
if (b%3==1)
{ b+=3; continue; }
b-=5;
}
}
A) 7 B) 8
C) 9 D) 10
29
30.下面的程序会()
main()
{ int x=3,y=0,z=0;
if(x=y+z) printf(“****”);
else printf(“####”);
}
A、有语法错误不能通过编译
B、输出****
C、可以通过编译,但不能通过连接,因而不能运行
D、输出####
4.以下程序的输出结果是()
main()
{ int x=10,y=10,i;
for(i=0;x>8;y=++i)
printf(“%d %d”,x--,y);
}
A、10 1 9 2
B、9 8 7 6
C、10 9 9 0
D、10 10 9 1
1.下面程序的输出是______
main()
{
int k=11;
printf("k=%d,k=%o,k=%x\n",k,k,k);
}
A) k=11,k=12,k=13 B) k=11,k=13,k=13
C) k=11,k=013,k=oXb D) k=11,k=13,k=b
2.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是____
main()
{
int x;
scanf("%d",&x");
if (x++>5) printf("%d",x)
else printf("%d\n",x--);
}
A) 7和5 B) 6和3
C) 7和4 D) 6和4
3.读程序
#include”stdio.h”
main()
{ int a; float b,c;
scanf("%2d%3f%4f",&a,&b,&c);
printf("\na=%d,b=%f,c=%f\n",a,b,c);
}
若运行时从键盘上输入9876543210
A) a=98,b=765,c=4321
B) a=1,b=432,c=8765
C) a=98,b=765.000000,c=4321.000000
D) a=98,b=765.0,c=4321.0
5.下面程序的输出是____
main()
{int x=3,y=6,a=0;
while (x++!=(y-=1))
{
a+=1;
if (y } printf("x=%d,y=%d,a=%d\n",x,y,a); } A) x=4,y=4,a=1 B) x=5,y=5,a=1 C) x=5,y=4,a=3 D) x=5,y=4,a=1 6. 7. 8. 8. 三、程序填空题 F1. 以下程序可判断输入的一个整数是否能被3或7整除,若能整除,输出“yes”,否则输出“no”。请填空。 #include “stdio.h” void main() { int k; printf(“Enter a int number:”); scanf(“%d”,<&k>); if( printf(“yes\n”); else printf(“no\n”); } N2.下面程序的功能是计算1-3+5-7+……-99+101的值。 main() { int i,t=1,s=0; for(i=1;i<=101;i+=2) { t= s=s+t; t=<-t>; } printf("%d\n",s); } F3.下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 main() {float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while( {if(x>amax)amax=x; if( scanf("%f",&x); } printf("\namax=%f\namin=%f\n",amax,amin); } F4.下面程序的功能是计算100至1000之间有多少个数其各位数字之和是5。#include “stdio.h” void main() { int i,s,k,count=0; for(i=100;i<=1000;i++) { s=0; k=i; while(k) { s=s+k%10; k= } if( } printf(“%d”,count); } F5下列程序功能是求数组中主对角线元素之和,请补充完成 main() { int a[3][3],i,j,s=0; for( i=0;i<3;i++ ) for( j=0;j<3;j++) scanf("%d",<&a[i][j]>); for(i=0;i<3;i++) for( j=0;j<3;j++) if() s+=a[i][j]; printf("s=%d\n",s); } R6. 下面程序的功能是:输入一个字符,如果它是一个大写字母,则把它变成小写字母,如果它是一个小写字母,则把它变成大写字母,其它字符不变,请将程序补充完整: main() { char ch; scanf(“%c”,&ch); if (ch>=?A? && ch <=?Z?) ch=ch+32; else if ( < ch=ch-32>; printf(“%c”,ch); } R7. 请将用户输入的x,y,z三个整数按照从小到大的顺序排列 main() { int x,y,z,t; scanf("%d,%d,%d",&x,&y,&z); if(x>y) { t=y;y=x;x=t;} if( {t=z;z=x;x=t;} if( {t=y;y=z;z=t;} printf("small to big: %d,%d,%d\n",x,y,z); } 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( { if (n>0) i=i++; if (n<0) j=j++; } printf(“i=%4d j=%4d\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= while(r!=0) {m=n,n=r,r=m;} printf(“H.C.F=%d\n,n); } R10. 以下程序可判断输入的一个字符是否为小写字母,如果是,则转换为对应的大写字母并输出;否则,就原样输出。请填空。 #include “stdio.h” void main() { char k; printf(“Enter a character here:”); scanf(“%c”,<&k>); if( printf(“%c\n”,k-32); else printf(“%c\n”,k); } 1.程序打印如下形式的图形 * * * * * * * * * *)count++;