高三C语言三月月考试题
姓名:________ 班级:________总分:__________
一、选择题(每小题5分,共30分)
17.创建最小的标题的文本标签是( )
A.
B. C. D. 18.HTML代码C.设置围绕一个图像的边框的大小 D.加入一条水平线
19.站点相对路径是由一个向前的斜线开始,它表示( ) A. 在服务器上的站点的根目录 B.在客户机上文件的根目录 C.在服务器上的站点的子目录 D.在客户机上文件的子目录 20.在HTML中,下面是段落标签的是:( ) A. ? B.
? B. ? D.?
21.字符串\的长度是 ( )。
A. 11 B. 7 C. 5 D. 3 22.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是:( )。 int k,a,b; unsigned long w=5; double x=1.422; A. x%(-3) B. w+=-2
C. k=(a=2,b=3,a+b) D. a+=a=+(b=4)*(a=3) 二、基本操作题
28)C语言知识填空(每空3分,共12分)
C语言的输出语句一般使用的是printf函数,这是一个_________定义的函数。printf函数针对不同的数据类型使用的是不同的格式,其中float类型按小数格式输出的格式是_________,默认的小数位数为________位。假如要求左对齐,一般在格式符号的前面加________.
三、综合应用题(每空5分,共20分)
31. 输入一个字符串,内有数字和非数字字符,如: a123x456 17960?302tab5876
将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456 放在a[1],??。统计共有多少个整数,并输出这些数。 #include
{ char str[80],*pstr;
int i,j,k,m,e10,digit,ndigit,a[10],*pa;
printf(\ pstr=&str[0]; pa=&a[0]; ndigit=0; i=0; j=0;
while ( (1) )
1
{ if ((*(pstr+i)>='0')&&(*(pstr+i)<='9')) j++; else
{ if(j>0)
{ digit=*(pstr+i-1)-48; k=1; while(k { e10=1; for (m=1;m<=k;m++) e10= (2) ; digit= (3) ; k++; } *pa=digit; ndigit++; pa++; j=0; } } i++; } if(j>0) { digit=*(pstr+i-1)-48; k=1; while(k { e10=1; for(m=1;m<=k;m++) e10=e10*10; digit=digit+(*(pstr+i-1-k)-48)*e10; k++; } *pa=digit; (4) j=0; } printf(\ j=0; pa=&a[0]; for(j=0;j 四、程序分析题(本题共3小题,共75分) 33.阅读程序,写出运行结果(每空5分,共25分) 1、main() { int i=1; while (i<=15) 2 if (++i%3!=2) continue; else printf(\ printf(\ } 程序运行结果是:_______________________ 2、 main() { int x=4,y=0,z; x*=3+2; printf(\ x*=(y==(z=4)); printf(\ } 程序运行结果是:_______________________ 3、main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf(\ } 程序运行结果是:_______________________ 4、#include struct st { int x;int *y;} *p ; int dt[4]={10,20,30,40}; struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3] }; void main() { p=aa; printf(\ printf(\ printf(\ } 程序运行结果是:_______________________ 5、 void ast(int x,int y,int *cp,int *dp) { *cp=x+y; *dp=x-y; } void main() { int a,b,c,d; a=4; b=3; ast(a,b,&c,&d); printf(\ }程序运行结果是______________ 3 34.程序填空。按照题目的要求,将正确内容填入答题卡相应位置,使程序完整(每空5分,共25分) (1) 有一行文字,要求删去某一个字符。此行文字和要删去的字符均由键盘输入,要删去的字符以字符形式输入(如输入 a表示要删去所有的 a字符)。 #include { /*str1表示原来的一行文字,str2表示删除指定字符后的文字*/ char str1[100],str2[100]; char ch; int i=0,k=0; gets(str1); scanf(\ for (i=0; (1) ;i++) if (str1[i]!=ch) { str2[ (2) ]=str1[i]; k++; } str2[ (3) ]='\\0'; printf(\ } (2)找出10个字符串中的最大者。 #include { char str[20],s[N][20]; int i; for (i=0;i if ( (2) >0) strcpy(str,s[i]); printf(\ } 35.阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请在答题卡中指出错误的行号,并给出该行修改后的程序代码。(每空5行,共25分) (1) 下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在 每个注释行附近,请调试改正。调试改正中,不得改变程序结构,也不得增删语句。 #define NULL 0 struct stud { long num; char name[10]; 4
相关推荐: