期末练习题2-48课时一、单选题(共20题,共30分)1. 执行下列程序后的输出结果是()int fun(int x1,int x2){ int x;x1>x2(x=3):(x=4);return(x+x1);}main(){ printf("%d\n",fun( 7,8));}(分)2. 已知int i,a;执行语句i=(a=3,a++,--a,a+4,a+5,++a);后,i的值是()(分)3. 若有以下定义和语句:double r=99,*p=&r;*p=r;则以下正确的叙述是( ) (分)A.以下两处的*p含义相同,都说明给指针变量p赋值B.在"double r=99,*p=&r;"中,把r的地址赋值给了p所指的存储单元C.语句"*p=r;"把变量r的值赋给指针变量pD.语句"*p=r;"取变量r的值放回r中4. 有以下程序#define N 20fun(int A[],int n,int m){int i,j;for(i=m;i>=n;i--)A[i+1]=A[i];}main(){int i,A[N]={1,2,3,4,5,6,7,8,9,10};fun(A,2,9);for(i=0;i<5;i++)printf("%d",A[i]);}程序运行后的输出结果是()(分)5. 下面程序的输出是()main(){int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);} (分)=11,k=12,k=13 =11,k=13,k=13 =11,k=013,k=oXb =11,k=13,k=b6. 以下程序段的输出为:int x=011;printf("%d\n",++x); (分)7. 执行下述程序的输出结果是()。
#include <>#include <>main(){char *p1,*p2,str[50]="ABCDEFG";p1="ABCD";p2="efgh";strcpy(str+1,p2+1);strcpy(str+3,p1+3);printf("%s\n",str);} (分)8. 以下语句的输出结果是()int a=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf("%d,%d,%d\n",a,b,c); (分),0,5 ,5,-10 ,0,5 ,0,-109. 阅读程序#include <>int funC(int B[],int n){int i,r;r=1;for (i=0;i<=n;i++)r=r*B[i];return (r);}main(){int x,A[]={2,3,4,5,6,7,8,9};x=funC(A,3);printf("%d\n",x);}执行下述程序的输出结果是()(分)10. 下列选项中,可作为C语言合法整数的是()(分)11. 若有以下定义,则对A数组元素的正确引用是()int A[5],*p=A; (分)A.*&A[5] +2 C.*(p+5) D.*(A+2)12. 有以下程序void fun(int *a,int i,int j){int t;if(i<j){t=a[i];a[i]=a[j];a[j]=t;fun(a,++i,--j);}}main(){int a[]={1,2,3,4,5,6},i;fun(a,0,5);for(i=0;i<6;i++)printf("%d",a[i]);}执行后输出结果是()(分)5 4 3 2 1 3 2 1 5 65 6 1 2 3 2 3 4 5 613. 若定义如下变量和数组_________。
int j;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是_________。
for (j=0;j printf("%d",x[j][2-j]); (分)5 9 4 7 5 76 914. 有以下程序:main(){int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a printf("%d,%d\n",k,m);}程序运行后的输出结果是()(分),0 ,1 ,0 ,115. sizeof(float)是()(分)A.一个双精度型表达式B.一个整型表达式C.一种函数调用D.一个不合法的表达式16. 在C语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是() (分)17. 有以下程序#include “”main(){ printf("%d\n",NULL); }程序运行后的输出结果是()(分)没定义,出错18.以下程序的输出结果是()char *a[5]={"how","do","you","do","!"};char **p;int i;p=a;for(i=0;i<4;i++)printf("%s",p[i]);(分)!19. 执行下面的程序后的输出结果为()int x,y,z;x=20,y=40,z=15;while(y>x)x+=4,y-=4;z/=2;printf("%d,%d,%d",x,y,z); (分),36,30 ,8,7 ,28,7 ,28,20. 函数调用:strcat(strcpy(str1,str2),str3)的功能是( ) (分)A.将串str1复制到串str2中后再连接到串str3之后B.将串str1连接到串str2之后再复制到串str3之后C.将串str2复制到串str1中后再将串str3连接到串str1之后D.将串str2连接到串str1之后再将串str1复制到串str3中二、判断题(共10题,共10分)1. do-while语句构成的循环不能用其他语句构成的循环来代替()(1分) ( )2. 在for语句的一般形式中,表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。
()(1分) ( )3. 函数strcpy(字符数组1,字符串2)作用是将字符数组1复制到字符串2中去。
(1分) ( )4. break语句只结束本次循环,而不是终止整个循环的执行。
continue语句则是结束整个循环过程,不再判断执行循环的条件是否成立。
()(1分) ( )5. 在执行switch语句时,多个case语句不可以共用一组执行语句()(1分) ( )6. 不同函数中可以使用相同名字的变量,它们代表不同的对象,互不干扰。
(1分) ( )7. 静态存储方式是在程序运行期间根据需要进行动态的分配存储空间的方式。
(1分) ( )8. 关系表达式的值是一个逻辑值,它的值为“真”或“假”。
逻辑表达式的值也是一个逻辑量,它的值也为“真”或“假”()(1分) ( )9. 如果被调用函数的定义出现在主调函数之前,可以不必加以声明()(1分) ( )10. 条件运算符的结合方向为“自左而右”。
(1分) ( )三、填空题(共10题,共20分)1. 说明下列程序的功能_____________________________________________________________________________________________ _____________________________________________________________________________________________ _____________________________________________________________________________________________ _____________________________________________________________________________________________ ____________________________________________。
#includevoid main(){int i,j ;float a[3][3],b[3][3],c[3][3],x;for(i=0;i for(j=0;j {scanf("%f", &x); a[i][j]= x;}for(i=0;i for(j=0;j {scanf("%f",&x);b[i][j]=x;}for(i=0; i for(j=0;j c[i][j]=a[i][j]+ b[i][j] ;for(i=0; i {printf("\n");for(j=0;j printf("%f", c[i][j]);}printf("\n");} (2分)2. 阅读程序,写出执行该程序的输出结果_____________________________________________________________________________________________ _____________________________________________________________________________________________ __________________________________________________________________________________________________________________________________________。
#includeint a=1,j=2;main(){int i=2;func();printf("a=%d,i=%d,j=%d\n",a,i,j);}func(){int i=5;printf("a=%d,i=%d\n",a,--i);i++;a++;if (afunc();a--;j+=3;printf("a=%d,j=%d\n",a,j);} (2分)3. 可执行的c语言程序由一个或多个________组成。