湖南省对口招生《C语言》高考复习卷(七)

标签:
精品文字版答案
2025-03-10
| 2份
| 20页
| 198人阅读
| 1人下载

内容正文:

《编程语言基础——C语言》高等教育出版社(第五版) 编程语言基础(C语言) 模拟卷(七) 考试时间:100分钟 满分:100分 姓名 班级 学号 1 1、 单项选择题(本题共20小题,每题2分,共40分,多选、错选均不得分) 1. 从键盘读入文本(使用#作为输入结束标志),写入“abc.txt”文件中,下列选项中,正确的一项是( ) A. while((c=getchar())!=’#’) B. while((c=getchar())= =’#’) C. while(c=getchar()!=’#’) D. while(c=getchar()= =’#’) 2. 若要对a进行++运算,则a应具有下面说明( ) A. int a[3][2]; B. char ( * a) [3] ; C. char *a[ ]={"12","ab"}; D. int b[10] , *a=b; 3. 下列程序运行结果为( ) #define P 3 #define S(a) P*a*a main() {int ar; ar=S(3+5); printf(" %d",ar); } A.192 B.25 C.29 D.27 4. 下列程序的运行结果是( ) main(){ int a = 100; if( a > 100) printf("%d ", a > 100); else printf("%d ", a <= 100); getch();} A.1 B.100 C.0 D.不确定值 5. 阅读下面程序,程序执行后的输出结果为( ) main(){ char a,b; for(a='0',b='3';a<b;a++,b--) printf("%c%c",a,b); printf(" ");getch();} A.0123 B.3210 C.2130 D. 0312 6. 阅读以下程序,运行后的输出结果为( ) #include "stdio.h" main() { int a[]={1,2,3,4,5,6,7,8,9,0}, *p; p=a; printf("%d ", *p+9);} A.0 B.1 C.10 D.9 7. 阅读以下程序,运行后的输出结果为( ) #include "string.h" #include "stdio.h" main() { char *p="abcde\0fghjik\0"; printf("%d ", strlen(p));} A.12 B.15 C.6 D.5 8. 下列程序段的输出结果是( ) int x=5; if(x- -<5) printf("%d ", x); else printf("%d ",x++); A.3 B.5 C.4 D.6 9. 执行以下语句后m的值是( ) inta=21,b=20,m=0; switch (a % 3) { case 0:m++; case 1:m++; switch (b% 2) { case 0:m++; break; default:m++;} default:++m;} A.4 B.5 C.3 D.2 10. 若 int型变量i和p已定义,执行以下语句后p的值不等于6!的是( ) A.for(i=1,p= 1;i<= 6;i++) p*=i; B.for(i=1;i<6;i++) {p*=i;} C.i=1;p= 1; while( i<=6) {p*=i; i++;} D.i= 1;p= 1; do {p*=i; i++;} while(i <= 6); 11. 执行以下语句后n的值为( ) int i, n= 0; for (i=2;i<5;i++) do{ if (i % 3) continue; n++; } while (!i); n++;} A.5 B.2 C.3 D.4 12. 以下字符串中用strlen()函数计算长度的结果一定是4的是( ) A. char s[4]={'a'}; B. char s[5]="abc\0d"; C. char s[4]= {‘a', 'b', 'c', 'd'}; D. char s[5]= "abc0"; 13. 下列说法中正确的是( ) A.标准库函数可以直接使用而不用进行任何说明或预处理 B.用户可以定义与标准库函数同名的函数 C.用户可以定义与系统关键字同名的变量 D.#include 之后只能是标准库头文件 14. 列关于函数的说法中正确的是( ) A.形参的类型说明可以放在函数体内 B.函数名前的返回值类型可以是数组 C.函数体内可以有多个return语句 D.retum 后可以有多个值同时返回 15. 已知 intx=2;,则以下表达式不等于6的是( ) A.x++,2*x B. 2*x,x+=2 C.x*=1+x D.x*=(x+1) 16. 已知 char c[][10]= {"hello", "world!"};,则 sizeof(c[1])的值是( ) A.6 B.5 C.7 D.10 17. 已知以下语句运行时用户输入8,则输出不为8的是( ) A. int c; scanf("%d", &c); printf("%d", c); B. char c; scanf("%c", &c); printf("%c", c); C.char c; scanf("%c", &c); printf("%d", c - '0'); D.int c; scanf("%d", &c); printf("%c", (char)(c)); 18. 共用体变量定义为:union{char c;int x;}d;,则以下语句中正确的是( ) A.d.c=’x’;x=10; B.d=’x’,10; C.d.x=10;d.c=’x’; D.d=’x’; 19. 已知:int x=0x40;,则:printf(“%d”,x=x<<1);语句中的输出结果是( ) A.128 B.100 C.120 D.64 20. 如有以下定义,下列叙述中正确的一项是( ) typedef int *INT INT p,*q; A.p是int 型变量 B.p是基类型为int的指针变量 C.可以用INT代替int类型 D.q是基类型为int的一级指针变量 二、程序运行结果题(本题共7小题,每题3分,共21分) 21. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> #include<string.h> int main( ) {char pl[8]="abc", * p2,str[50]="abc"; p2="abc"; strcpy (str+1,strcat(pl,p2)); printf("%s ",str); getch();} 22. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> int * f(int * x, int * y) {if ( *x+5<*y) return y; else return x;} int main( ) {int a=11,b=2,* p,* q,* r; p=&a;q=&b; r=f(p,q); printf("%d,%d,%d ",* p,* q,* r); getch();} 23. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> void swap(int * pl,int * p2) { int p; p= *pl;*pl=*p2;*p2=p;} int main( ) { int a=12,b=24, * ptrl, * ptr2; ptrl=&a;ptr2=&b; swap(ptrl,ptr2); printf("*ptrl=%d,*ptr2=%d ",*ptrl,*ptr2); printf("a=%d,b=%d ",a,b); getch();} 24. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> int sub(int * s) { static int t=1;t= *s+t; return t;} int main( ) { int i,k; for(i=0;i<3;i++) { k=sub(&i); printf("%3d",k);} printf(" "); getch();} 25. 以下程序的运行结果是【 】。 #include <stdio.h> #include<conio.h> char cchar(char ch) { if (ch>='A' && ch<='Z') ch=ch-'A'+'a'; return ch;} main() { char s[]="ABC+abc=defDEF", *p=s; while(*p) { *p=cchar(*p); p++; } printf("%s ",s);getch();} 26. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> #include<string.h> main(){ char b1[8]="abcdefg", b2[8], *pb=b1+4; while( --pb>=b1) strcpy(b2, pb); printf("%d ", strlen(b2)); getch();} 27. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> void ss( char *s, char t) { while (*s) { if (*s==t) *s=t-'a'+'A'; s++;}} main() { char str[100]="abcddfefdbd", c='d'; ss(str, c); printf("%s ", str1);getch() ;} 三、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 28. 以下程序的功能是调用findmax函数返回数组中的最大值。请填空。 #include <stdio.h> #include<conio.h> findmax( int *a, int n) { int *p, *s; for (p=a, s=a; 【1】; p++) if(【2】) s=p; return (*s);} main() { int x[5]={12,21,13,6,18}; printf("%d ", findmax(x,5));getch();} 29. 下面程序的功能是将字符串中的数字字符删除后输出。请填空。 #include <stdio.h> #include<conio.h> void delnum(char * s) { int i,j ; for (i=0,j=0 ;s[i]!='\0';i++) if ( 【1】) {s[j]=s[i];j++;} 【2】;} int main ( ) { char atm[80]=""; printf("input a string:"); gets(atm) ; 【3】; printf(" %s",atm); getch();} 30. 本程序用来计算一个英文句子中最长单词的长度(字母个数)max。假设该英文句子中只含有字母和空格,在空格之间连续的字母串称为单词,句子以 . 为结束。请填空。 #include <stdio.h> #include<conio.h> int main( ) { char *p,a[ ]={"l am very happy ."}; int max=0,i=0; p=a; while(【1】) { while((( * p<='Z')&&( * p>='A'))||(( * p<='z')&&( * p>='a'))) { 【2】; p++; } if(【3】) max=i; i=0;p++;} printf("max=%d",max); getch();} 四、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共15分) 31. 下列程序的功能是:从键盘输入若干行字符(每行长度不等),输入后把存储到一磁盘文件中,再从该文件中读入这些数据,将其中的小写字母转换成大写字母后在显示屏上输出。 L1 #include <stdio.h> L2 #include<conio.h> L3 #include<stdlib.h> L4 int main() L5 {int i,flag; L6 char str[80],c; L7 file *fp; L8 fp=fopen("d:\\text","r"); L9 flag=1; L10 while(flag==1) L11 {printf("input string: "); L12 gets(str); L13 fprintf(fp,"%s ",&str); L14 printf("continue?"); L15 c=getchar(); L16 if((c=='N')||(c=='n') ) L17 flag=0; L18 getchar();} L19 fclose(fp); L20 fp=fopen("d:\\text","r"); L21 while(fscanf(fp,"%s",str)= =EOF) L22 {for(i=0;str[i]!='\0';i++) L23 if((str[i]>='a')&&(str[i]<='z')) L24 str[i]-32; L25 printf("%s ",str);} L26 fclose(fp); L27 getch();} 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$ 《编程语言基础——C语言》高等教育出版社(第五版) 编程语言基础(C语言) 模拟卷(七) 考试时间:100分钟 满分:100分 姓名 班级 学号 1 1、 单项选择题(本题共20小题,每题2分,共40分,多选、错选均不得分) 1. 从键盘读入文本(使用#作为输入结束标志),写入“abc.txt”文件中,下列选项中,正确的一项是( ) A. while((c=getchar())!=’#’) B. while((c=getchar())= =’#’) C. while(c=getchar()!=’#’) D. while(c=getchar()= =’#’) 答案:A 2. 若要对a进行++运算,则a应具有下面说明( ) A. int a[3][2]; B. char ( * a) [3] ; C. char *a[ ]={"12","ab"}; D. int b[10] , *a=b; 答案:D 3. 下列程序运行结果为( ) #define P 3 #define S(a) P*a*a main() {int ar; ar=S(3+5); printf(" %d",ar); } A.192 B.25 C.29 D.27 答案:C 4. 下列程序的运行结果是( ) main(){ int a = 100; if( a > 100) printf("%d ", a > 100); else printf("%d ", a <= 100); getch();} A.1 B.100 C.0 D.不确定值 答案:A 5. 阅读下面程序,程序执行后的输出结果为( ) main(){ char a,b; for(a='0',b='3';a<b;a++,b--) printf("%c%c",a,b); printf(" ");getch();} A.0123 B.3210 C.2130 D. 0312 答案:D 6. 阅读以下程序,运行后的输出结果为( ) #include "stdio.h" main() { int a[]={1,2,3,4,5,6,7,8,9,0}, *p; p=a; printf("%d ", *p+9);} A.0 B.1 C.10 D.9 答案:C 7. 阅读以下程序,运行后的输出结果为( ) #include "string.h" #include "stdio.h" main() { char *p="abcde\0fghjik\0"; printf("%d ", strlen(p));} A.12 B.15 C.6 D.5 答案:D 8. 下列程序段的输出结果是( ) int x=5; if(x- -<5) printf("%d ", x); else printf("%d ",x++); A.3 B.5 C.4 D.6 答案:C 9. 执行以下语句后m的值是( ) inta=21,b=20,m=0; switch (a % 3) { case 0:m++; case 1:m++; switch (b% 2) { case 0:m++; break; default:m++;} default:++m;} A.4 B.5 C.3 D.2 答案:A 10. 若 int型变量i和p已定义,执行以下语句后p的值不等于6!的是( ) A.for(i=1,p= 1;i<= 6;i++) p*=i; B.for(i=1;i<6;i++) {p*=i;} C.i=1;p= 1; while( i<=6) {p*=i; i++;} D.i= 1;p= 1; do {p*=i; i++;} while(i <= 6); 答案:B 11. 执行以下语句后n的值为( ) int i, n= 0; for (i=2;i<5;i++) do{ if (i % 3) continue; n++; } while (!i); n++;} A.5 B.2 C.3 D.4 答案:D 12. 以下字符串中用strlen()函数计算长度的结果一定是4的是( ) A. char s[4]={'a'}; B. char s[5]="abc\0d"; C. char s[4]= {‘a', 'b', 'c', 'd'}; D. char s[5]= "abc0"; 答案:D 13. 下列说法中正确的是( ) A.标准库函数可以直接使用而不用进行任何说明或预处理 B.用户可以定义与标准库函数同名的函数 C.用户可以定义与系统关键字同名的变量 D.#include 之后只能是标准库头文件 答案:B 14. 列关于函数的说法中正确的是( ) A.形参的类型说明可以放在函数体内 B.函数名前的返回值类型可以是数组 C.函数体内可以有多个return语句 D.retum 后可以有多个值同时返回 答案:C 15. 已知 intx=2;,则以下表达式不等于6的是( ) A.x++,2*x B. 2*x,x+=2 C.x*=1+x D.x*=(x+1) 答案:B 16. 已知 char c[][10]= {"hello", "world!"};,则 sizeof(c[1])的值是( ) A.6 B.5 C.7 D.10 答案:D 17. 已知以下语句运行时用户输入8,则输出不为8的是( ) A. int c; scanf("%d", &c); printf("%d", c); B. char c; scanf("%c", &c); printf("%c", c); C.char c; scanf("%c", &c); printf("%d", c - '0'); D.int c; scanf("%d", &c); printf("%c", (char)(c)); 答案:D 18. 共用体变量定义为:union{char c;int x;}d;,则以下语句中正确的是( ) A.d.c=’x’;x=10; B.d=’x’,10; C.d.x=10;d.c=’x’; D.d=’x’; 答案:C 19. 已知:int x=0x40;,则:printf(“%d”,x=x<<1);语句中的输出结果是( ) A.128 B.100 C.120 D.64 答案:A 20. 如有以下定义,下列叙述中正确的一项是( ) typedef int *INT INT p,*q; A.p是int 型变量 B.p是基类型为int的指针变量 C.可以用INT代替int类型 D.q是基类型为int的一级指针变量 答案:B 二、程序运行结果题(本题共7小题,每题3分,共21分) 21. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> #include<string.h> int main( ) {char pl[8]="abc", * p2,str[50]="abc"; p2="abc"; strcpy (str+1,strcat(pl,p2)); printf("%s ",str); getch();} 答案:aabcabc 22. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> int * f(int * x, int * y) {if ( *x+5<*y) return y; else return x;} int main( ) {int a=11,b=2,* p,* q,* r; p=&a;q=&b; r=f(p,q); printf("%d,%d,%d ",* p,* q,* r); getch();} 答案:11,2,11 23. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> void swap(int * pl,int * p2) { int p; p= *pl;*pl=*p2;*p2=p;} int main( ) { int a=12,b=24, * ptrl, * ptr2; ptrl=&a;ptr2=&b; swap(ptrl,ptr2); printf("*ptrl=%d,*ptr2=%d ",*ptrl,*ptr2); printf("a=%d,b=%d ",a,b); getch();} 答案: *ptrl=24,*ptr2=12 a=24,b=12 24. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> int sub(int * s) { static int t=1;t= *s+t; return t;} int main( ) { int i,k; for(i=0;i<3;i++) { k=sub(&i); printf("%3d",k);} printf(" "); getch();} 答案: 1 2 4 25. 以下程序的运行结果是【 】。 #include <stdio.h> #include<conio.h> char cchar(char ch) { if (ch>='A' && ch<='Z') ch=ch-'A'+'a'; return ch;} main() { char s[]="ABC+abc=defDEF", *p=s; while(*p) { *p=cchar(*p); p++; } printf("%s ",s);getch();} 答案:abc+abc=defdef 26. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> #include<string.h> main(){ char b1[8]="abcdefg", b2[8], *pb=b1+4; while( --pb>=b1) strcpy(b2, pb); printf("%d ", strlen(b2)); getch();} 答案:7 27. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> void ss( char *s, char t) { while (*s) { if (*s==t) *s=t-'a'+'A'; s++;}} main() { char str[100]="abcddfefdbd", c='d'; ss(str, c); printf("%s ", str1);getch() ;} 答案:abcDDfefDbD 三、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 28. 以下程序的功能是调用findmax函数返回数组中的最大值。请填空。 #include <stdio.h> #include<conio.h> findmax( int *a, int n) { int *p, *s; for (p=a, s=a; 【1】; p++) if(【2】) s=p; return (*s);} main() { int x[5]={12,21,13,6,18}; printf("%d ", findmax(x,5));getch();} 答案: 【1】p-a<n 【2】*p>*s 29. 下面程序的功能是将字符串中的数字字符删除后输出。请填空。 #include <stdio.h> #include<conio.h> void delnum(char * s) { int i,j ; for (i=0,j=0 ;s[i]!='\0';i++) if ( 【1】) {s[j]=s[i];j++;} 【2】;} int main ( ) { char atm[80]=""; printf("input a string:"); gets(atm) ; 【3】; printf(" %s",atm); getch();} 答案: 【1】s[i]<'0'||s[i]>'9' 【2】s[j]='\0' 【3】delnum(atm) 30. 本程序用来计算一个英文句子中最长单词的长度(字母个数)max。假设该英文句子中只含有字母和空格,在空格之间连续的字母串称为单词,句子以 . 为结束。请填空。 #include <stdio.h> #include<conio.h> int main( ) { char *p,a[ ]={"l am very happy ."}; int max=0,i=0; p=a; while(【1】) { while((( * p<='Z')&&( * p>='A'))||(( * p<='z')&&( * p>='a'))) { 【2】; p++; } if(【3】) max=i; i=0;p++;} printf("max=%d",max); getch();} 答案: 【1】*p!='.' 【2】i++ 【3】i>max 四、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共15分) 31. 下列程序的功能是:从键盘输入若干行字符(每行长度不等),输入后把存储到一磁盘文件中,再从该文件中读入这些数据,将其中的小写字母转换成大写字母后在显示屏上输出。 L1 #include <stdio.h> L2 #include<conio.h> L3 #include<stdlib.h> L4 int main() L5 {int i,flag; L6 char str[80],c; L7 file *fp; L8 fp=fopen("d:\\text","r"); L9 flag=1; L10 while(flag==1) L11 {printf("input string: "); L12 gets(str); L13 fprintf(fp,"%s ",&str); L14 printf("continue?"); L15 c=getchar(); L16 if((c=='N')||(c=='n') ) L17 flag=0; L18 getchar();} L19 fclose(fp); L20 fp=fopen("d:\\text","r"); L21 while(fscanf(fp,"%s",str)= =EOF) L22 {for(i=0;str[i]!='\0';i++) L23 if((str[i]>='a')&&(str[i]<='z')) L24 str[i]-32; L25 printf("%s ",str);} L26 fclose(fp); L27 getch();} 答案: 【1】L7 FILE *fp; 【2】L8 fp=fopen("d:\\text","w"); 【3】L13 fprintf(fp,"%s ",str); 【4】L21 while(fscanf(fp,"%s",str)!=EOF) 【5】L24 str[i]-=32; 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

湖南省对口招生《C语言》高考复习卷(七)
1
湖南省对口招生《C语言》高考复习卷(七)
2
湖南省对口招生《C语言》高考复习卷(七)
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。