1、国家二级 C语言机试(函数和数组)模拟试卷 1及答案与解析 一、选择题 1 有以下程序 (strcpy为字符串复制函数, strcat为字符串连接函数 ) #include #include main() char a10=“abc“, b10=“012“, c10=“xyz“; strcpy(a+1, b+2); puts(strcat(a, c+1); 程序运行后的输出结果是 ( A) bc2yz ( B) a2yz ( C) a12xyz ( D) 12yz 2 若有定义语句: char s10=“1234567 0 0“;则 strlen(s)的值是 ( A) 8 ( B) 7 ( C
2、) 9 ( D) 10 3 有以下程序,程序中库函数 islower(ch)用以判断 ch中的字母是否为小写字母 #include #include void fun(char*p) int i=0; while(pi) if(pi=&islower(pi-1)pi-1=pi-1-a+A; i+; main() char s1100=“ab cd EFG!“; fun(s1); printf(“ s n“, s1); 程序运行后的输出结果是 ( A) Ab Cd EFg! ( B) ab cd EFG! ( C) ab cd EFg! ( D) aB cD EFG! 4 下列选项中,能 够满足
3、 “只要字符串 s1等于字符串 s2,则执行 ST”要求的是 ( A) if(s1=s2)ST; ( B) if(strcpy(s1, s2)=1)ST; ( C) if(strcmp(s2, s1)=0)ST; ( D) if(s1-s2=0)ST; 5 以下关于 return语句的叙述中正确的是 ( A)一个自定义函数中必须有一条 return语句 ( B)一个自定义函数中可以根据不同情况设置多条 return语句 ( C)定义成 void类型的函数中可以有带返回值的 return语句 ( D)没有 return语句 的自定义函数在执行结束时不能返回到调用处 6 以下叙述中错误的是 ( A
4、)函数调用可以作为一个独立的语句存在 ( B)函数形参的值也可以传回给对应的实参 ( C)若函数有返回值,必须通过 return语句返回 ( D) C程序必须由一个或一个以上的函数组成 7 若有以下函数首剖 int fun(double x10, int*n)则下面针对此函数的函数声明语句中正确的是 ( A) int fun(double, int); ( B) int fun(double*x, int n); ( C) int fun(double*, int*); ( D) int fun(double x, int*n); 8 有以下程序 #include int fun(int x,
5、 int Y) if(x=y)retum(x); else return(x+y) 2); main() int a=4, b=5, c=6; printf(“ dhn“, fun(2*a, fun(b, c); 程序运行后的输出 结果是 ( A) 3 ( B) 6 ( C) 8 ( D) 12 9 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是 ( A)形参只是形式上的存在,不占用具体存储单元 ( B)函数的形参和实参分别占用不同的存储单元 ( C)同名的实参和形参占同一存储单元 ( D)函数的实参和其对应的形参共占同一存储单元 10 若有以下程序 void f(int
6、x) if(x =10) printf(“ d-“, x 10); f(x 10); ) else printf(“ d“, x); ) main() int Z=123456; f(z); 则程序的输出结果是 ( A) 6-5-4-3 2-1 ( B) 65 -4-3-2-1- ( C) 1-2-3-4-5-6 ( D) 1-2-3-4-5-6- 11 有以下程序 #include int fun(int a, int b) return a+b; main()( int x=6, y=7, z=8, r; r=fun(fun(x, y), Z-); printf(“ d n“, r); 程
7、序运行后的输出结果是 ( A) 15 ( B) 21 ( C) 20 ( D) 31 12 有以下程序 #include int f(int x) int y; if(x=0x=1)return(3); y=x*x-f(x-2); return y; main() int z; z=f(3); printf(“ d n“, z); 程序的运行结果是 ( A) 9 ( B) 0 ( C) 6 ( D) 8 13 有以下程序 fun(int x) int p; if(x=0x=1)return(3); p=x-fun(x-2); return p; main() printf(“ d n“, fu
8、n(7); ) 执行后的输出 结果是 ( A) 3 ( B) 7 ( C) 0 ( D) 2 14 以下叙述中正确的是 ( A)对于变量而言, “定义 ”和 “说明 ”这两个词实际上是同一个意思 ( B)在复合语句中不能定义变量 ( C)全局变量的存储类别可以是静态类 ( D)函数的形式参数不属于局部变量 15 在一个 C源程序文件中所定义的全局变量,其作用域为 ( A)由具体定义位置和 extern说明来决定范围 ( B)所在程序的全部范围 ( C)所在函数的全部范围 ( D)所在文件的全部范围 16 有以下程序 #include func(int n) static int num=1;
9、num=num+n; prinff(“ d“, num); void main() func(3); func(4); printf(“ n“); 程序运行后的输出是 ( A) 4 5 ( B) 3 5 ( C) 4 8 ( D) 3 4 17 有以下程序 #include int fun() static int x=1; x*=2: return x; ) main() int i, s=1; for(i=1; i =3; i+) s*=fun(); pfintf(“ d n“, s); 程序运行后的输出结果是 ( A) 0 ( B) 10 ( C) 30 ( D) 64 18 有以下程序
10、 int fun(int x, int n) static int sum=0, i; for(i=0; i n; i+) sum+=xi; return sum; main() int a=1,2, 3, 4, 5, b=6, 7, 8, 9), s=0; s=fun(a, 5)+fun(b, 4); printf(“ d n“, s); ( A) 50 ( B) 45 ( C) 60 ( D) 55 19 有下列程序: int a=4; int f(int n) int t=0; static int a=5; if(n 2)int a=6; t+=a+; ) elseint a=7; t
11、+=a+; ) retum t+a+: main() int s=a, i=0; for(; i 2; i+)s+=f(i); printf(“ d n“, s); 程序运行后的输出结果是 ( A) 28 ( B) 24 ( C) 32 ( D) 36 20 有以下程序 #include void main() int a=2, 3, 5, 4), i; for(i=0; i 4; i+) switch(i 2) case 0: switch(ai 2) case 0: ai+; break; case 1: ai-; break; case 1: ai=0; for(i=0; i 4; i+
12、) printf(“ d“, ai); printf(“ n“); 程序运行后的输出结果是 ( A) 2 0 5 0 ( B) 3 3 4 4 ( C) 3 0 4 0 ( D) 0 3 0 4 21 下列选项中,能正确定义数组的语句是 ( A) int num; ( B) int N=2008; int numN; ( C) int num0 2008; ( D) #define N 2008 int numN; 22 有以下程序 #include main() int s12=1, 2, 3, 4, 4, 3, 2, 1, 1, 1, 2, 3), c5=0, i; for(i=0; i
13、12; i+)csi+; for(i=1; i 5; i+)printf(“ d“, ci); prinff(” 11”); ( A) 4 3 3 2 ( B) 2 3 4 4 ( C) 1 2 3 4 ( D) 1 1 2 3 23 以下叙述中正确的是 ( A)一条语句只能定义一个数组 ( B)数组说明符的一对方括号中只能使用整型常量,而不能使用表达式 ( C)每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元 ( D)在引用数组元素时,下标表达式可以使用浮点数 24 有以下程序 #include main() int aft=10, 20, 30, 40, *p=a,
14、i; for(i=0; i =3; i+)ai=*p; p+; ) printf(“ d n“, a2); 程序运行后的输出结果是 ( A) 20 ( B) 30 ( C) 10 ( D) 40 25 若有以下程序 #include char宰 a=“you“, b=“welcome#you#to#China!“; main()int ij=0; char*p; for(i=0; bi!= 0; i+) if(*a=bi) p=&bi; for(j=0; aj!= 0; j+) if(aj!=*p)break; p+; ) if(aj= 0)break; printf(“ s n“, p);
15、) 则程序的输出结果是 ( A) #you#to#China! ( B) me#you#to#China! ( C) #China! ( D) #to#China! 26 有以下程序 #include main() int b33=0, 1, 2, 0, 1, 2, 0, 1, 2), i, i, t=1; for(i=0; i =i; j+) t+=bibi; printf(“ d n“, t); 程序运行后的输出结果是 ( A) 3 ( B) 1 ( C) 9 ( D) 4 27 有以下程序 #include stdio h int fun(int(*s)4, int n, int k)
16、int m, i; m=s0k; for(i=1; i n; i+)if(sik m)m=sik; return m: main() int a44=1, 2, 3, 4), 11, 12, 13, 14, 21, 22, 23, 24, 31,32, 33, 34); printf(“ d n“, fun(a, 4, 0); 程序的运行结果是 ( A) 31 ( B) 34 ( C) 4 ( D) 32 28 有下列程序: main() int a44: 1, 4, 3, 2), 8, 6, 5, 7), 3, 7, 2, 5), 4, 8, 6, 1),i,k, t; for(i=0; i
17、 3; i+) for(k=i+l; k int fun(char s) char*p=s; while(*p!=0) p+; return(p-s); ) main() printf(“ d n“, fun(“0ABCDEF“); ) 程序运行后的输出结果是 ( A) 6 ( B) 7 ( C) 1 ( D) 0 32 以下叙述中正确的是 ( A) char ca35=“A“, “BB“, “CCC“;是不合语法的 ( B)字符串数组,是指数组中的每个元素都是一个存放字符串的一维数组 ( C) char ca5: “A“, ”BB”, “CCC“;是不合语法的 ( D) char*ca3=“
18、A“, “BB“, “CCC“;是不合语法的 33 以下叙述中正确的是 ( A)语句 char str10=“string!“;和 char str10=ttstring!”);并不等价 ( B)对于一维字符数组,不能使用字符串常量来赋初值 ( C)对于 字符串常量 “string!“,系统已自动在最后加入了 0字符,表示串结尾 ( D)在语句 char str=“string!“;中,数组 str的大小等于字符串的长度 34 以下选项中,没有编译错误的是 ( A) char str3=d, e, b, u, g, 0); ( B) char str15=“pass“, str26; str2
19、=str1; ( C) char name10; name=“china“; ( D) char str4; str4=“hello world“: 35 设有定义: char p=1, 2, 3, *q=p;以下不能计算出一个 char型数据所占字节数的表达式是 ( A) sizeof(p) ( B) sizeof(char) ( C) sizeof(*q) ( D) sizeof(p0) 36 以下不能将 S所指字符串正确复制到 t所指存储空间的是 ( A) for(i=0; ti=si; i+); ( B) while(*t=*s)t+; s+; ( C) for(i=0, d=0; t
20、i+: sj+; ); ( D) do*t+=*s+; while(*s); 37 有以下程序 #include void main() char s=“012xy“; int i, n=0; for(i=0; si!=0; i+) if(si =a&si =z)n+; printf(“ d n“, n); 程序运行后的输出结果 是 ( A) 0 ( B) 3 ( C) 5 ( D) 2 38 若要求从键盘读入含有空格字符的字符串,应使用函数 ( A) getc() ( B) gets() ( C) getchar() ( D) scanf() 国家二级 C语言机试(函数和数组)模拟试卷 1答
21、案与解析 一、选择题 1 【正确答案】 B 【试题解析】 程序执行 strcpy(a+1, b+2)后,字符数组 a的值为 “a2”,再进行字符串的连接 strcat(a,c+1),此时字符数组 a的值为 “a2yz”。 【知识模块】 函数和数组 2 【正确答案】 B 【试题解析】 字符串长度函数 strlen(s)表示计算出以 s为起始地址的字符串的长度,并作为函数值返回。这个长度值不包括串尾的结束标志 0。 【知识模块】 函数和数组 3 【正确答案】 D 【试题解析】 函数 fun(char *p)的功能是如果 pi指向的字符为空字符并且其前一个字符是小写字母,则把小写字母变成大字母,所以
22、在主函数中,执行 fun (s1)后,小写字母 b, d都改成大字母。 【知识模块】 函数和数组 4 【正确答案】 C 【试题解析 】 在 C语言中要对两个字符串的大小进行比较,就需要调用字符串比较函数 strcmp(),如果这个函数的返回值等于 0,说明两个字符串相等。 【知识模块】 函数和数组 5 【正确答案】 B 【试题解析】 return语句主要用于返回函数的值。在一个自定义函数中,可以根据不同的情况设置多条 return语句返回函数的值。 【知识模块】 函数和数组 6 【正确答案】 B 【试题解析】 一个 C程序中可以包含任意多个不同名的函数,但只能有一个主函数。一个 C程序总是从主
23、函数开始执行。函数的值通 过 return语句返回,return语句中的表达式的值就是所求的函数值。在 C语言中,数据只能从实参单向传递给形参,称为 “按值 ”传递。也即是说,当简单变量作为实参时,用户不可能在函数中改变对应实参的值。 【知识模块】 函数和数组 7 【正确答案】 C 【试题解析】 函数说明的一般形式为:类型名函数名 (参数类型 1,参数类型2, ) 。因为函数 int fun(double x10,int*n)的第 1个形式参数是一个双精度型的一维数组,第 2个参数是一个整型指针,并返回一个整型值。一维数组的名字表 示的是一维数组的地址。 【知识模块】 函数和数组 8 【正确答
24、案】 D 【试题解析】 fun(b, c)即 fun(5, 6), 5!=6,所以返回 (5+6) 2=5; fun(2*a, 5)即 fun(8, 5), 8!=5,所以返回 (8+5) 2=6。 【知识模块】 函数和数组 9 【正确答案】 B 【试题解析】 在 C语言中,函数的实参单元与形参单元在内存中分配不同的存储单元。在调用函数时,给形参分配临时存储单元,并将实参对应的值传递给形参,在被调用函数中对形参存储单元中的值进行运算,最后 通过 return语句把函数值返回调用函数。当调用结束后,形参单元被释放,实参单元仍保留并维持原值。 【知识模块】 函数和数组 10 【正确答案】 A 【试
25、题解析】 函数 f的主要功能为逆置输出整数 x的每一位数据,如果 z的值为123456,逆置输出的结果为 6-5-4-3-2-1。 【知识模块】 函数和数组 11 【正确答案】 B 【试题解析】 本题考查了函数的调用,函数 fun功能为求两个数据的和。主函数中表达式 r=fun(fun(x,y), z-),首先计算内层调用 fun(x,y),计算结果为 13,然后外层调用 fun(13,8),结果为 21。 【知识模块】 函数和数组 12 【正确答案】 C 【试题解析】 主函数调用 f()函数,将实参 3传递给 x,进行 if条件语句的判断不成立,接着执行 y=3*3-f(1),再执行 f(1
26、),而 f(1)满足 if条件语句,所以 f(1)的值为 3,代入 y=3*3-f(1)=9-3=6。 【知识模块】 函数和数组 13 【正确答案】 D 【试题解析】 因为在函数 fun(int x)中,如果参数 x等于 0或 1时,返回值 3。否则 p=x-fun(x-2)这是一个递归函数,所以在主函数调用 fun(7)时,其过程为:“fun(7)=7-fun(5)=7-(5-fun(3)=7-(5-(3-fun(1)=7-(5-(3-3)=7-5=2”,所以最后的输出结果为 2。 【知识模块】 函数和数组 14 【正确答案】 C 【试题解析】 用 static说明符说明全局变量时,此变量可
27、称作静态全局变量。静态全局变量只限于本编译单位使用,不能被其他编译单位所引用。在一个函数内部定义的变量 (包括形参 )是局部变量,它只在本函数范围内有效。不同 函数中可以使用相同名字的局部变量,它们代表不同的对象,互不影响。在函数内部复合语句中也可以定义变量,这些变量都是局部变量,只在本复合语句中有效。 【知识模块】 函数和数组 15 【正确答案】 A 【试题解析】 全局变量是在函数外部任意位置上定义的变量,它的作用域是从变量定义的位置开始,到整个源文件结束止。在同一编译单位内用 extern说明符扩展全局变量的作用域 (当全局变量定义在后,引用它的函数在前时,应该在引用它的函数中用 exte
28、rn对此全局变量进行说明,以便通知编译程序:该变量是一个已在外 部定义了的全局变量,已经分配了存储单元,不需要再为它分配存储单元。这时全局变量的作用域从 extern说明处起,延伸到该函数末尾 )。当一个程序由多个编译单位构成,并且在每个文件中均需要引用同一个全局变量,这时只在其中一个文件中定义所有的全局变量,而在其他用到这些全局变量的文件中用 extern对这些变量进行说明。 【知识模块】 函数和数组 16 【正确答案】 C 【试题解析】 在函数 func(int n)中定义了局部静态变量 num,其初始值等于1,所以在主函数中执行 func(3),输出 4,此时 静态变量 num的值等于
29、4,当退出函数 func(3)时,其值不会丢失,所以当在执行 func(4)时,输出 8。 【知识模块】 函数和数组 17 【正确答案】 D 【试题解析】 本题考查了静态局部变量,该局部变量的值在函数调用结束后如果不消失而保留原值。函数 fun的功能返回 2的乘方,主函数 fun函数调用 3次,因此第一次 s累乘 2,第二次累乘 4,第三次累乘 8,即为 2*4*8,值为 64。 【知识模块】 函数和数组 18 【正确答案】 C 【试题解析】 在函数 int fun(int x, int n)的定义中,变量 sum使用了 static修饰符,这说明了变量 sum为一个静态局部变量。由于在整个程
30、序运行期间,静态局部变量在内存中的静态存储区中占据着永久的存储单元。即使退出函数之后,下次再进入该函数时,静态局部变量继续使用原来存储单元中原来的值。函数intfun(intx, intn)的功能是求出数组 x各个元素的和。所以在主函数中,调用函数 Fun(a, 5)后,变量 sum=1+2+3+4+5=15,当再次调用 Fun(b, 4)后,变量sum=15+6+7+8+9=45,所以 s=15+45=60。 【知识模块】 函数和数组 19 【正确答案】 A 【试题解析】 程序中定义了全局整型变量 a=4。在 int f(int n)函数中定义了局部静态整型变量并进行了初始化即 static
31、 int a=5。在 int f(intn)函数中对 n是否是偶数进行判断,如果 n是奇数,则函数的返回值为 11,局部静态整型变量 a=6;如果 n是偶数,则函数的返回值为 12,局部静态整型变量 a=6。所以在 main()函数中循环首先执行 s+=f(0)语句,而 f(0)返回值 12,所以第一次循环结束 s的值等于4+12=16;第二次开始执行 f(1)时,在 f(1)中执行 if(n 2)int a=6; t+=a+; 和return t+a+;这两条语句,这时 t=6, a=6(静态局部变量第一次循环后其值加 1值不释放,执行第二次循环量,其值仍有效 ),所以 f(1)的返回值等于
32、 12。再在主函数中执行 s+=f(1)语句,即 16+12=28。 【知识模块】 函数和数组 20 【正确答案】 C 【试题解析】 在主函数的 for循环语句中,当循环变量 i的值等于 0, 2时,执行switch中的 case 0语句,分别对数组元素 a0和 a2加 1和减 1,所以 a0的值等于 3, a2等于 4。当循环变量 i的值等于 1, 3时,执行 switch中的 case 1语句,把数组元素 a1和 a3的值赋为 0。所以输出数组 a的元素,其结果为 3040。 【知识模块】 函数和数组 21 【正确答案】 D 【试题解析】 在定义一维数组时,数组的下标应该是一个确定的整数值
33、。要注意的是在定义二维数组时,其第一维下标可以省略,但第二维下标不能省略。 【知识模块】 函数和数组 22 【正确答案】 A 【试题解析】 本题考查 for语句的循环控制,首先定义了两个数组并赋予了初始值,第一个 for循环语句循环 12次遍历 s数组的各个元素,将 s中的原素值作为c数组中的下标,使相应的值自加。例如当 i=0, cs0+为 c1+,其值变为1,当执行 i=1, 2, 11后, c1、 c2、 c3、 c4分别为 4、 3、 3、 2,故选项 A)为正确的运行结果。 【知识模块】 函数和数组 23 【正确答案】 C 【试题解析】 数组的定义格式:类型说明符 数组名【整型常量表
34、达式】,;可以同时定义多个类型相同的 数组,之间以逗号分隔开,数组的类型表明了数组中元素的数据类型,数组中所有元素的类型相同,数组经过定义以后就可使用,编译程序将对其分配一片连续的存储空间进行连续存储。 C语言中只能单个引用数组元素而不能一次引用整个数组。引用格式为:数组名【下标】,引用元素时,需要注意下标只能为整型常量或整型表达式。 【知识模块】 函数和数组 24 【正确答案】 B 【试题解析】 因为指针变量 p的初始值指向数组 a,所以执行 for循环语句后,数组 a中的元素的值不变。 【知识模块】 函数和数组 25 【正确 答案】 D 【试题解析】 程序中循环部分的主要功能是,在字符串
35、b中寻找是否含有子串a,如果含有则退出,字符指针 p指向该匹配子串后面的位置,利用 prinff函数输出则从该位置开始一直输出到字符串 b的结尾。 【知识模块】 函数和数组 26 【正确答案】 D 【试题解析】 这道题主要考查的是二维数组的有关知识。在两层 for循环语句中,每次执行变量 t的累加时,二维数组元素 b的第二下标的值与第一下标相同的值,所以程序执行的过程为 t=1+b11+b22=1+1+2=4。 【知 识模块】 函数和数组 27 【正确答案】 A 【试题解析】 函数 fun(int(*s)4, int n,int k)的功能是返回二维数组第 k列的最大元素。在主函数中由于二维数
36、组 a44已经初始化,所以 fun(a,4,0)的值是二维数组 a第 1列中的最大元素 31。 【知识模块】 函数和数组 28 【正确答案】 D 【试题解析】 利用二重 for循环对二维数组 a44的主对角线上的元素 1, 6,2, 1实现按列从大到小排序,所以数组 a44的值变为 6, 4, 3, 2, , 8,2, 5, 7, 3, 7, 1, 5, 4, 8, 6, 1,最后输出数组 a44第一行上的元素,所以输出结果为 6, 4, 3, 2。 【知识模块】 函数和数组 29 【正确答案】 C 【试题解析】 在理解二维数组的时候,可以把一个二维数组看成是一个一维数组,每个数组元素又是包含
37、有若干个元素的一维数组,也就是具有行列的结构,二维数组初始化也是在类型说明时给各下标变量赋以初值。二维数组可按行分段赋值,也可按行连续赋值。 【知识模块】 函数和数组 30 【正确答案】 A 【试题解析】 选项 A)中定义了二维数组 ss,可以用于存储字符串,但是字符串的存储不能通过赋值,仅可以初始化或者输入得到,而选项 C)和 A)不同,选项 C)为指针数组,对于指针变量可以保存常量字符串的地址。 【知识模块】 函数和数组 31 【正确答案】 B 【试题解析】 函数 fun的主要功能是计算字符串中实际字符的个数,因此主函数中调用 fun得到结果为 7。 【知识模块】 函数和数组 32 【正确
38、答案】 B 【试题解析】 字符串数组,也就是二维字符数组,其中每个元素为一个字符串,选项 B)的说法正确。选项 A)和 C)对于 ca的定义是正确的。选项 D)定义一个指针数组,可以保存多个字符串的首地址。 【知识模块】 函数和数组 33 【正确答案】 C 【试题解析】 在 C语言中,字符串是借助于字符型一维数组来存放的,可以借助在定义时初始化以及输入来把字符串存入数组,并规定以字符 0作为 “字符串结束标志 ”。 0是一个转义字符,称为空值,它的 ASCII码值为 0。 0作为标志占用存储空间,但不计入字符串的实际长度。在 C语言中,系统在每个字符串的最后自动加入一个字符 ( 0)作 为字符
39、串的结束标志。 【知识模块】 函数和数组 34 【正确答案】 A 【试题解析】 选项 A)是定义了字符数组 str3,并对其赋初值。选项 B)中语句str2=str1非法,字符数组不能直接赋值。选项 C), D)和选项 B)一致。 【知识模块】 函数和数组 35 【正确答案】 A 【试题解析】 选项 A)计算的是 p字符数组首地址所占的内存字节数,返回值数组中所有元素占有的空间。 *q和 p0分别表示数组 p中下标为 0的字符元素,选项 B)和 D)都可以计算 char型数据占有的字节数 。 【知识模块】 函数和数组 36 【正确答案】 D 【试题解析】 在选项 D)中,不能把 s所指字符串的
40、结束标志符赋给字符串 t。 【知识模块】 函数和数组 37 【正确答案】 D 【试题解析】 这段程序的功能求出字符串 s中字符在小写字符 a到 z之间字符的个数。在程序中字符串 s的值为 “012xy”,所以在字符串 s中符合要求的字符的个数等于 2。 【知识模块】 函数和数组 38 【正确答案】 B 【试题解析】 scanf()语句中用 “空格 ”间隔不同的字符串,空格将被全部 忽略掉,所以用 scanf()函数不能输入空格; getchar()函数用于输入字符,其调用形式为:ch=getchar(), getchar()函数从终端读入一个字符作为函数值,把读入的一个字符赋给变量 ch。在输入时,空格、回车符都将用于字符读入,而且只有在用户敲入Enter键时,读入才开始执行。 gets()函数的调用形式为: gets(str_adr),其中sir_adr是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。 gets()函数用来从终端键盘读入字符串 (包括空格符 ),直 到读入一个换行符为止。 getc()函数的调用形式为: ch=getc(Pf)其中 pf是文件指针。函数的功能是从 pf指定的文件中读入一个字符,并把它作为函数值返回。 【知识模块】 函数和数组