精品文档
B) 在函数外部定义的变量只在本函数范围内有效 C) 在函数内的复合语句定义的变量在本函数内有效 D) 形式参数是局部变量
39. 以下关于变量的作用域叙述不正确的是( C )
A) 在函数内部定义的变量是局部变量 B) 函数中的形式参数是局部变量
C) 全局变量的作用范围仅限于其所在的文件 D) 局部变量的作用范围仅限于本函数 40. 以下关于C函数参数说法不正确的是( B )
A) 实参可以是常量、变量和表达式 B) 形参可以是常量、变量和表达式 C) 实参可以为任意数据类型 D) 形参应与对应的实参类型一致
41. 以下关于C函数返回值的叙述正确的是( D )
A) 被调函数中只有使用return语句才能返回主调函数 B) 使用一个return语句可以返回多个函数值
C) 函数返回值类型取决于return语句中的表达式类型 D) 函数返回值类型取决于定义该函数时所指定的类型 42. 在C中,“a>b>c”属于哪种表达式?( A )
A) 关系
B) 赋值
C) 逻辑
D) 非法
43. 以下不合法的C表达式是( C )
A) 10 || 8
B) 12==9+1
C) ++5
D) x!=y
44. 给定以下程序段:
int n=10; while (n>6) {
n--;
printf(\}
以上程序段输出结果是( D ) A) 10 9 8
B) 9 8 7
C) 10 9 8 7
D) 9 8 7 6
45. 若i,j已定义为int型,则以下程序段中内循环总的执行次数是( C )
for (i=5; i>0; i--)
for (j=1; j<6; j++) {……}
A) 30
B) 24
C) 25
D) 20
46. 若已定义:float *p, m=3.14159; 则使p指向m正确的赋值语句是( B )
A) p=m;
5欢迎下载 。
B) p=&m; C) *p=m; D) *p=&m;
精品文档
47. 若已定义:char s[10]; 则下面表达式中不能表示s[1]地址的是( A )
A) s++ 二、填空题
1. 函数是C程序的基本构成单位,C程序总是从 main函数____开始执行的。 2. 赋值表达式x*=y+5的另一种书写形式为 x=x*(y+5) 3. 已知a=10,b=20,c=3,则表达式a>b || c的值为 1
4. 整数m既能被3整除又能被4整除的逻辑表达式为 (m%3= =0)&&(m%4= =0)
5. 若有定义:double a[10][5]; 则数组a中行下标最大值为 9 ,列下标最大值为 4 。 6. 若有定义:int a[ ]={1,4,6,5,8,9}; 则 *(a+5) 的值为 9
7. 设有如下定义int a[5][6],*p; 取数组元素a[4][2]的地址放到p中的语句为 p=&a[4][2]; 8. 未加特别说明(说明为静态的)的全局变量是外部的,能被其它文件中的函数使用,而在引用
它的文件中,需要用关键字extern说明。 9. 已知a=10,b=20,则表达式!a>b的值为 0 10. 写出0 11. 若有定义:int a[10],*p=a; 则元素a[5]的值用p表示的形式是 *(p+5) 12. 若有定义:int *p[4]; 则标识符p表示 数组长度为4的一维指针数组 13. 凡是函数中未指定存储类型的局部变量,其默认的存储类型为 auto B) s+1 C) &s[0]+1 D) &s[1] 三、程序填空 1. 下面程序的功能是:从键盘输入一个字符,若是大写字母,则转换为小写字母并输出,若为小 写字母则直接输出,请在_____处填上合适内容,使程序完整。 #include 2. 下面程序的功能是:求1~100间的偶数和,请在_____处填上合适内容,使程序完整。 #include for (num=2; num<=100; num=num+2) sum=sum+num ; printf(\间的偶数和是:%d\\n\} 3. 下面程序段是求n!的递归函数,请将函数补充完整。 double fac(int n) { double result; 6欢迎下载 。 精品文档 if (n= =1) } 4. 以下程序的功能是:输入一整数n,判断是否为素数。 #include int i, n; scanf(\ for (i=2; i<=sqrt(n); i++) if (n%i==0) break; if (i>sqrt(n)) printf(\else printf(\ } result=1; result=n*fac(n-1); else return(result); 四、阅读程序 1. #include void main( ) { } 若输入“This is a C program.”,运行结果:COUNT=13 char ch; int cnt1=0,cnt2=0; while ((ch=getchar( ))!='\\n') if (ch>='a'&&ch<='z') cnt1++; else cnt2++; printf(\ 2. #include void main( ) { int i,j,temp; int a[ ]={0,1,2,3,4,5,6,7,8,9}; for(i=0,j=9;i {temp=a[i];a[i]=a[j];a[j]=temp;} 7欢迎下载 。 精品文档 } for(j=0;j<10;j++) printf(\ 运行结果:9 8 7 6 5 4 3 2 1 0 3. #include #include { } 运行结果:string1=goodmorning char str1[20]=\int i,j; for (i=strlen(str1),j=0;str2[j]!='\\0'; i++, j++) str1[i]=str2[j]; str1[i]='\\0'; printf(\ 4. #include void main( ) { } 本程序的功能是:从键盘输入10个数存到数组a中,求10个数的最大值及其位置 当程序运行时,从键盘输入“1 0 2 9 3 8 4 7 5 6”,运行结果:Max=9.000000,position:3 5. #include float average(int x[ ], int n) { } void main( ) 8欢迎下载 。 int i,j,pos; float val,a[10]; for(i=0;i<10;i++) scanf(\ val=a[0]; for(j=0;j<10;j++) if (a[j]>val) {val=a[j];pos=j;} printf(\