scanf(\ puts(al); puts(a2);puts(a3);puts(a4);} A) aa B)aa C)aa D) aa bb
bb bb bb cc cc cc dd dd cc dd dd ee *【题6.48】 D
当运行以下程序时,从键盘输入:ab
{ char c[N]; int i=0;
for (;i 下面程序的运行结果是 main() {char a[80」=\ int i=0;strcat(a,b); whi1e(a[i++]!='\\0')b[i]=a[i];puts(b);} A)LB B)ABLMNP C)AB D)LBLMNP *【题6.51】 B 下面程序的运行结果是 main() {char str[]=\for(k=2;(c=str[k]!='\\0';k++) {switch(c) {case 'I':++k;break; case 'L':continue; default:putchar(c);continue;} putchar('*');}} A)SSW* B)SW* C) SW*A D)SW *【题6.52】 B 下面程序的运行结果是 #include {char a[]=\int i,j=0; for(i=1;i<7;i++) if(a[j] A)mogninr B)mo C)morning D)mornin *【题7.1】 B 以下正确的说法是 建立函数的目的之一是A)提高程序的执行效率 B)提高程序的可读性 C)减少程序的篇幅 D)减少程序文件所占内存 *【题7.2】 B 以下正确的说法是 A)用户若需调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C)系统根本不允许用户重新定义标准库函数 D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件 包括到用户源文件中,系统自动去调 *【题7.3】 A 以下正确的函数定义形式是 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); *【题7.4】 D 以下正确的函数形式是 A)double fun(int x,int y) {z=x+y; return z;} B)fun(int x,y) {int z; return z;} C)fun(x,y) {int x,y; double z; z=x+y; return z;} D)double fun(int x,int y) {double z; z=x+y; return z;} *【题7.5】 A 以下正确的说法是 在C语言中 A)实参和与其对应的形参各占用独立的存储单元 B)实参和与其对应的形参共占用一个存储单元 C)只有当实参和与其对应的形参同名时才共占用存储单元 D)形参是虚拟的,不占用存储单元 *【题7.6】 D 若调用一个函数,且此函数中没有return语句,则正确的说法是 该函数 A)没有返回值 B)返回若干个系统默认值 C)能返回一个用户所希望的函数值 D)返回一个不确定的值 *【题7.7】 B 以下不正确的说法是 C语言规定 A)实参可以是常量、变量或表达式 B)形参可以是常量、变量或表达式 C)实参可以为任意类型、 D)形参应与其对应的实参类型一致 *【题7.8】 C 以下正确的说法是 A)定义函数时,形参的类型说明可以放在函数体内 B) return后边的值不能为表达式 C)如果函数值的类型与返回值类型不一致,以函数值类型为准 D)如果形参与实参的类型不一致,以实参类型为准 *【题7.9】 B C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 A)地址传递 B)单向值传递 C)由实参传给形参,再由形参传回给实参 D)由用户指定传递方式 *【题7.10】 C 以下程序有语法性错误,有关错误原因的正确说法是 main() {int G=5,k; void prt_char(); ...... k=prt_char(G); ......} A)语句void prt_char();有错,它是函数调用语句,不能用void 说明 B)变量名不能使用大写字母 c)函数说明和函数调用语句之间有矛盾 D)函数名不能使用下划线 *【题7.11】 B C语言允许函数值类型缺省定义,此时该函数值隐含的类型是 A)float型 B)int型 c)1ong型 D)double型 *【题7.12】 C语言规定,函数返回值的类型是由 A) return语句中的表达式类型所决走 B)调用该函数时的主调函数类型所决定 C)调用该函数时系统临时决定 D)在定义该函数时所指定的函数类型所决定 *【题7.13】 B 下面函数调用语句含有实参的个数为 func((expl,exp2), (exp3,exp4,exp5)); A)1 B)2 C)4 D)5 *【题7.14】 D 以下错误的描述是 函数调用可以 A)出现在执行语句中 B)出现在一个表达式中 C)做为一个函数的实参 D)做为一个函数的形参 *【题7.16】 B 以下正确的描述是 在C语言程序中 A)函数的定义可以嵌套,但函数的调用不可以嵌套 B)函数的定义不可以嵌套,但函数的调用可以嵌套 C)函数的定义和函数的调用均不可以嵌套 D)函数的定义和函数的调用均可以嵌套 *【题7.19】 A 若用数组名作为函数调用的实参,传递给形参的是 A)数组的首地址 B)数组第一个元素的值 C)数组中全部元素的值 D)数组元素的个数 *【题7.20】 B 已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组 array的错误定义方式为 int a[3][4]; f(a); A) f(int array[][6]) B) f(int array[3][]) C) f(int array[][4]) D) f(int array[2][5]) *【题7.21】 A 若使用一维数组名作函数实参,则以下正确的说法是 A)必须在主调函数中说明此数组的大小 B)实参数组类型与形参数组类型可以不匹配 C)在被调函数中,不需要考虑形参数组的大小 D)实参数组名与形参数组名必须一致 *【题7.23】 A 以下正确的说法是 如果在一个函数中的复合语句中定义了一个变量,则该变量 A)只在该复合语句中有效 B)在该函数中有效 C)在本程序范围内均有效 D)为非法变量 *【题7.24】 D 以下不正确的说法为 A)在不同函数中可以使用相同名字的变量 B)形式参数是局部变量 C)在函数内定义的变量只在本函数范围内有效 D)在函数内的复合语句中定义的变量在本函数范围内有效 *【题7.26】 C 以下程序的正确运行结果是 void num() {extern int x,y; int a=15,b=10; x=a-b;y=a+b;} int x,y; main() {int a=7,b= 5; x=a+b;y=a-b; num(); printf(\ A) 12,2 B)不确定 C)5,25 D) 1,12 *【题7.27】 A 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为 A)自动(auto) B)静态(static) C)外部(extern) D)寄存器(register) *【题7.28】 D 在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全 局变量,则该变量需要使用的存储类别是 A)extern B)register C)auto D)static *【题7.29】 D 以下程序的正确运行结果是。 main() {int a=2,i; for(i=0;i<3;i++)printf(\f(int a); {int b=0;static int c=3;b++;c++;return(a+b+c);} A) 7 7 7 B) 7 10 13 C) 7 9 11 D) 7 8 9 *【题7.30】 A 以下程序的正确运行结果是 #inc1ude {int k=4,m=1,p; p=func(k,m); printf(\ p=func(k,m); printf(\ func(int a,int b) {static int m=0,i=2; i+= m+1; m=i+a+b; return(m); } A)8,17 B)8,16 C)8,20 D)8,8 *【题8.1】 C 以下叙述中不正确的是 A)预处理命令行都必须以#号开始 B)在程序中凡是以#号开始的语句行都是预处理命令行 C)C程序在执行过程中对预处理命令行进行处理 D)以下是正确的宏定义 #define IBM一PC *【题8.2】 C 以下叙述中正确的是 A)在程序的一行上可以出现多个有效的预处理命令行 B)使用带参的宏时,参数的类型应与宏定义时的一致 C)宏替换不占用运行时间,只占编译时间 D)在以下定义中CR是称为\宏名\的标识符 #define C R 045 *【题8.3】 B 请读程序: #define ADD(x) x+x main() { int m=1,n=2,k=3; int sum=ADD(m+n)*k; printf(\ } 上面程序的运行结果是 A)sum=9 B)sum=10 C)sum=12 D)sum=18 *【题8.4】 B 以下程序的运行结果是 #define MIN(x,y) (x)<(y)?(x):(y) main() {int i=10,j=15,k; k=10*MIN(i,j); prinif(\} A) 10 B)15 C)100 D)150 *【题8,5】 D 在宏定义#define PI 3.14159中用宏名PI代替一个 A)常量 B)单精度数 C)双精度数 D)字符串 *【题8.6】