伤城文章网 > 其它课程 > 高二计算机专业第二次月考C语言试题

高二计算机专业第二次月考C语言试题


计 24 班计算机专业第二次月考试题
《C 语言》 满分:100 分 一、选择题(每小题 2 分,共 20 分) 1、sizeof(float)是( C、一种函数调用 2、以下描述正确的一项是( ) ) B、一个整型表达式 D、自定义函数 A、一个单精度表达式 时量:90 分钟 姓名:

A、continue 语句的作用是结束整个循环的执行 B、只能在循环体内和 switch 语句体内使用 break 语句 C、在循环体内使用 break 和 continue 语句的作用相同 D、循环嵌套中只能用 goto 语句 3、语句 while(!E);中的表达式!E 等价于( A、E==0 B、E!=0 C、E!=1 ) D、E==1 )

4、下面是对数组 s 的初始化,其中错误的是( A、char s[5]={″abc″}; C、char s[5]=″″; A、if(a==b) B、if(a=b)

B、char s[5]={′a′,′b′,′c′}; D、char s[5]=″abcde″; ) D、if(strcmp(a,b)) C、if(strcpy(a,b)) )

5、 判断字符串 a 和字符串 b 是否相等,应当使用( 6、C 语言中,下列说法正确的是(

A、实参和与其对应的形参各占用独立的存储单元 B、实参和与其对应的形参各共占用一个存储单元 C、实参和形参同名时才会共占用一个存储单元 D、形参是虚拟的,不占用存储单元 7、C 语言规定中,下面说法不正确的是( A、实参可以为常量、变量、表达式 C、实参可以为任意类型 A、数组第一个元素的值 C、数组首元素的地址 A、外部(extern) A、s+1 ) B、形参可以为常量、变量、表达式 D、形参与其对应的实参类型一致 ) B、数组中元素的值 D、数组元素的个数 ) )

8、若用数组名作为实参,则传递给形参的是(

9、在函数中未指定存储类别的局部变量,系统默认为( 10、若 char s[10]定义;则下面表达式中不表示 s[1]的地址是( B、s++ C、&s[0]+1 二、程序阅读题(每小题 5 分,共 30 分) 1、main()

B、自动(auto) C、静态(static) D、寄存型(register) D、&s[1]

1

{

unsigned char x,y,z; x=0x3;y=x|0x8;z=x<<1; printf(″%d,%d″,y,z);

} 2、#define PT 5.5 #define S(x) PTx*x*x main() { int a=1,b=2; printf(″%4.1f″,S(a+b)); } 3、main() { int i=1,n=3,j,k=3; int a[5]={1,4,5}; while(i<=n&&k>a[i]) i++; for(j=n-1;j>=i;j--) a[j+1]=a[j]; a[i]=k; for(i=0;i<=n;i++) } 4、main() { int a=5,i; for(i=0;i<3;i++) printf(″%4d″,f(a)); } int f(int a) { int b=0;static int c=3; b++;c++; return(a+b+c); }

运行结果:

运行结果:

printf(″%4d″,a[i]); 程序功能:

运行结果:
2

5、main() { char *p1,*p2,str[50]=″123″; p1=″123″;p2=″123″; strcpy(str+1,strcat(p1,p2)); printf(″%s″,str); } 6、int *p; main() { int a=1,b=2,c=3; p=&b; pp(a+c,&b); printf(″(1)%d %d %d\n″,a,b,*p); } pp(int a , int *q) { int c=4; *p=*q+c; a=*p-c; printf(″(2)%d %d %d\n″,a,*q,*p); } 三、程序填空题(每空题 5 分,共 30 分) 1、下面的程序的功能是将十进制正整数转换成十六进制。请填空。 main() { int a,i; char s[20]; scanf(″%d″,&a); c10_16(s,a); for(i= ;i>=0;i--) 运行结果: 运行结果:

printf(″%c″,*(s+i)); }
3

c10_16(char *p,int b) { int j; while(b>0) { j=b%16; if( else *p=j+55; b=b/16; ; } *p=′\0′; } 2、折半查找法 binary(int a[],int m) { int low=0,high=9,mid; while(low<=high) { mid= if(m<a[mid]) else if(m>a[mid]) else return(mid); } return -1; } 四、程序改错题(共 10 分) 下面程序的功能是将字符串中的数字字符删除后输出。在 delnum()函数中有两处 错误,请更正。 (要求:不能删除和添加语句) void delnum(char *s) { int i,j; for(i=0,j=0;s[i]!=`\0`;i++) if(s[i]<`0`&&s[i]>`9`)
4

) *p=j+48;

; ; ;

{

s[j]=s[i+1]; j++;

}

s[j]= `\0`; } main() { char *item[80]; gets(item); delnum(item); printf(″%s″,item); } 五、程序编程题(共 10 分) 将字符串按逆顺序存放并输出,请完成 sort()函数。 main() { char s[80]; int n; scanf(″%s″, s); n=strlen(s)-1; sort(s , n); prntf(″%s″,s); } char sort(char *p, int n) {

}
5


搜索更多“高二计算机专业第二次月考C语言试题”

网站地图

All rights reserved Powered by 伤城文章网 5xts.com

copyright ©right 2010-2021。
伤城文章网内容来自网络,如有侵犯请联系客服。zhit325@126.com