c语言考试模拟题.doc_第1页
c语言考试模拟题.doc_第2页
c语言考试模拟题.doc_第3页
c语言考试模拟题.doc_第4页
c语言考试模拟题.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习要点 第4版 第三章合法的标识符命名规则。各种运算符的语法,优先级结合性。转义字符。输入输出概念,输入时候的分隔符,常用的输入输出格式第四章 选择if语句 switch语句if(x=*) if(x= =*) 的区别break 跳出一层 不能多层第五章 循环几种循环语句要熟悉使用方法,循环嵌套第六章 数组数组定义使用二维数组输入输出的方法!起泡法排序(又叫冒泡法)字符串的灵活使用,编程的时候灵活处理第七章 函数函数基本概念函数原型 -构造一个函数,解决一个问题函数递归:求阶乘,Fibonacci数列,猴子吃桃 等类似的递归数列的第n项。数组名作参数的题目选择法排序全局变量局部变量 存储类别局部变量对全局变量的屏蔽被调函数里 static类型的变量的值第八章 指针灵活使用简单指针变量,即 int *p; float *p; char *p; 等等。所学的所有 有关指针变量的定义 记住第九章 结构体和共用体基本概念 链表的操作的关键语句第十章 文件基本概念 打开关闭文件,常用的几个输入输出函数算法:起泡法排序,选择法排序,杨辉三角,求素数方法,最大公约数和最小公倍数方法,一维数组的最大值,最小值平均值或求和等,二维数组的输入输出,求各种值,特殊二维数组的填充,矩阵转置等等。对一维数组的操作,如逆序存放,按指定要求的操作。字符串:逆序存放,大小写,求长度,复制,连接,等等指定的某种操作(灵活)字符串一维数组的灵活操作,会用函数完成。按题目的要求,用函数完成处理过程。关系到算法的题目:编写程序 29分。程序填空20分。读程序也有关系,21分。选择题,一般是基本概念。模拟题A (闭卷考试)一、选择题(每题2分,共20分)1、以下不正确的C语言标识符是 。A. ABC B. abc C. a_bc D. ab.c2、已知各变量的类型说明如下,则以下不符合C语言语法的表达式是: 。int k,a,b;unsigned long w=5;double x=1.422;A. k=(a=2,b=3,a+b) B. w+=-2 C. x%(-3) D. a+=a=+(b=4)*(a=3)3、下述for循环语句 。int i,k;for(i=0,k=-1;k=1;i+,k+) printf(* * * *);A. 判断循环结束的条件非法 B. 一次也不循环C. 只循环一次 D. 是无限循环4、在执行int a3=1,2,3,4,5,6;语句后,a10的值是 。A. 5 B. 4 C. 2 D. 15、在C语言程序中,以下描述正确的是 。A. 函数的定义和函数的调用均不可以嵌套B. 函数的定义和函数的调用均可以嵌套C. 函数的定义不可以嵌套,但函数的调用可以嵌套D. 函数的定义可以嵌套,但函数的调用不可以嵌套6、如果在一个函数的复合语句中定义了一个变量,则该变量 。A. 在该函数中任何位置都有效B. 只在该复合语句中有效,在该复合语句外无效C. 在本程序的源文件范围内均有效D. 此定义方法错误,其变量为非法变量7、若有定义:int a34; ,则 不能表示数组元素a11。A. *(a+5) B. *(a1+1) C. *(&a11) D. (*(a+1)18、有如下程序段:int *p,a=10,b=2;p=&a;a=*p+b;执行该程序段后,a的值是 。A、12 B、11 C、10 D、编译出错9、以下 是不正确的转义字符。A. B. t C. 0 D. 08110、当用户定义了一个结构体变量时,系统分配给它的内存为 。A.结构中第一个成员所需内存量 B. 成员中占内存量最大者所需的容量C.各成员所需内存的总和 D. 结构中最后一个成员所需内存量二、读程序写结果(每题3分,共21分)1、以下程序运行后输出的结果是 。#include void main() int x=3,y=1,z; x*=3+2; printf(%d ,x); x*=y=z=4; printf(%dn,x);2、以下程序的输出结果是 。#include void main() int x=1,y=1,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(a=%d,b=%dn,a,b);3、以下程序的输出结果是 。#include struct abc int a; int b; int c; ;void main() struct abc s2=1,2,3,4,5,6; int t; t=s0.b+s1.c; printf(%d n,t);4、以下程序的输出结果是 。#includevoid add() int x=1; static int y=3; printf(%d %d ,x,y); x=x+3; y=y+5;void main() int i; for(i=0;i2;i+) add();5、以下程序的输出结果是 。#include int x;void cude() x=x*x*x; void main() x=4; cude(); printf(%dn,x);6、以下程序的输出结果是 。 #include void fun(int *a, int *b, int *c) int *temp; temp=a; a=b; b=temp; *temp=*b, *b=*c; *c=*temp;void main() int a,b,c,*p1,*p2,*p3; a=4; b=5; c=6; p1=&a; p2=&b; p3=&c; fun(p1,p2,p3); printf(%d,%d,%dn,a,b,c);7、以下程序运行的结果是 。#includevoid prtv(int * x) printf(%dn,+*x);void main() int a=8 ;prtv(&a);三、程序填空(每空2分,共20分)1、以下程序用递归法求Fibonacci数列的第8项的值。请把函数补充完整。Fibonacci数列的公式为:F(1)=F(2)=1 ;当n2时,F(n)=F(n-1)+F(n-2)。#includeint Fibonacci(int n) int f; if(n=1|n=2) ; else f=Fibonacci(n-1)+Fibonacci(n-2); return(f);void main() printf( The result is %dn, );2、以下程序用来求两个正整数m和n的最大公约数。把程序补充完整。#includevoid main() int m,n; int p; scanf(%d%d,&m,&n); p= ; while( )p-; printf(The result is %dn,p);3、下面程序的功能是用选择法对10个整数从大到小排序。排序由sort函数完成,输入输出在main函数中完成。请填空:#includevoid sort(int x,int n) int i,j,k,t; for(j=0; jxk) ; if(k!=j) t=xj; xj=xk; xk=t; void main() int x10,i; for(i=0;i10;i+) scanf(%d, &xi); ; for(i=0;is2,则输出正值,如s1s2,则输出负值。#includeint compare(char *p1,char *p2) int i; i=0; while(*(p1+i)=*(p2+i) if(*(p1+i+)=0)return( ); return( );void main() int m; char str120,str220; scanf(%s,str1); scanf(%s,str2); m= ; printf(the result is:%dn,m);四、填空题(每空1分,共10分)1、在C语言中,实数有两种表示形式,即小数形式和 。有两种数据类型:float型和double型,一般将实型常量看做 类型。2、设int a=12; 则表达式a/=a+a的值是 。3、表达式x=a=3,6*a和表达式x=(a=3,6*a)分别是 表达式和 表达式。4、int (*p)5; 定义的p是一个 。5、数组名作函数参数时,从实参到形参传递的值是 。6、文件可以分为记录式文件和流式文件,C语言的文件是 。7、函数fclose的作用是 ;打开方式是“rb”表示的是 。五、编程题(共29分,分别9分、10分、10分)1、有一个四位正整数x。如果将x的各个数字逆序存放得到另一个四位数y,即:y的千位、百位、十位、个位分别是x的个位、十位、百位、千位。已知:满足x=9y。求这个四位数x。2、对一个字符串,编写程序实现,循环右移长度的一半(如果长度n是奇数,则移动(n-1)/2)。例如:如果字符串是: ABCDEFGH 则循环右移后的结果是: EFGHABCD如果字符串是: ABCDEFGHI 则循环右移后的结果是: FGHIABCDE3、10个学生,5门课程的考试成绩,编写一个处理函数,统计每个学生不及格课程的门数。在主函数中输入所有成绩,调用处理函数,输出结果。模拟题B (闭卷考试)一、选择题(每题2分,共20分)1、以下不正确的C语言标识符是 。A. AB.C B. abc C. a_bc D. ABC2、已知各变量的类型说明如下,则以下不符合C语言语法的表达式是: 。int k,a,b;unsigned long w=5;double x=1.422;A. w+=-2 B. x%(-3) C. k=(a=2,b=3,a+b) D. a+=a=+(b=4)*(a=3)3、下述for循环语句 。int i,k;for(i=0,k=-1;k=1;i+,k+) printf(* * * *);A. 判断循环结束的条件非法 B. 一次也不循环C. 只循环一次 D. 是无限循环4、在执行int a3=1,2,3,4,5,6;语句后,a10的值是 。A. 1 B. 2 C. 4 D. 55、在C语言程序中,以下描述正确的是 。A. 函数的定义和函数的调用均不可以嵌套B. 函数的定义和函数的调用均可以嵌套C. 函数的定义不可以嵌套,但函数的调用可以嵌套D. 函数的定义可以嵌套,但函数的调用不可以嵌套6、如果在一个函数的复合语句中定义了一个变量,则该变量 。A. 只在该复合语句中有效,在该复合语句外无效B. 在本程序的源文件范围内均有效C. 在该函数中任何位置都有效D. 此定义方法错误,其变量为非法变量7、若有定义:int a34; ,则 不能表示数组元素a11。A. *(a1+1) B. *(&a11) C. (*(a+1)1 D. *(a+5)8、有如下程序段:int *p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值是 。A、12 B、11 C、10 D、编译出错9、以下 是不正确的转义字符。A. 081 B. C. t D. n10、当用户定义了一个共用体变量时,系统分配给它的内存为 。A. 各成员所需内存的总和 B. 成员中占内存量最大者所需的容量C. 结构中第一个成员所需内存量 D. 结构中最后一个成员所需内存量二、读程序写结果(每题3分,共21分)1、以下程序运行后输出的结果是 。#include void main() int x=2,y=3,z; x*=3+2; printf(%d ,x); x*=y=z=4; printf(%dn,x);2、以下程序的输出结果是 。#include void 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(a=%d,b=%dn,a,b);3、以下程序的输出结果是 。#include struct abc int a; int b; int c; ;void main() struct abc s2=1,2,3,4,5,6; int t; t=s0.a+s1.c; printf(%d n,t);4、以下程序的输出结果是 。#includevoid add() int x=2; static int y=2; printf(%d %d ,x,y); x=x+3; y=y+5;void main() int i; for(i=0;i2;i+) add();5、以下程序的输出结果是 。#include int x;void cude() x=x*x; void main() x=6; cude(); printf(%dn,x);6、以下程序的输出结果是 。 #include void fun(int *a, int *b, int *c) int *temp; temp=a; a=b; b=temp; *temp=*b, *b=*c; *c=*temp;void main() int a,b,c,*p1,*p2,*p3; a=3; b=7; c=5; p1=&a; p2=&b; p3=&c; fun(p1,p2,p3); printf(%d,%d,%dn,a,b,c);7、以下程序运行的结果是 。#includevoid prtv(int * x) printf(%dn,+*x);void main() int a=10 ;prtv(&a);三、程序填空(每空2分,共20分)1、以下程序用递归法求Fibonacci数列的第8项的值。请把函数补充完整。Fibonacci数列的公式为:F(1)=F(2)=1 ;当n2时,F(n)=F(n-1)+F(n-2)。#includeint Fibonacci(int n) int f; if(n=1|n=2)f=1; else f= ; ;void main() printf( The result is %dn,Fibonacci(9);2、以下程序用来求两个正整数m和n的最大公约数。把程序补充完整。#includevoid main() int m,n; int p; scanf(%d%d,&m,&n); p= ; while(m%p!=0|n%p!=0) ; printf(The result is %dn,p);3、下面程序的功能是用选择法对10个整数从大到小排序。排序由sort函数完成,输入输出在main函数中完成。请填空:#includevoid sort(int x,int n) int i,j,k,t; for(i=0; ixk) ; if(k!=i) t=xi; xi=xk; xk=t; void main() int a10,i; for(i=0;i10;i+) scanf(%d, &ai); ; for(i=0;is2,则输出正值,如s1s2,则输出负值。#includeint compare(char *p1,char *p2) int i; ; while(*(p1+i)=*(p2+i) if(*(p1+i+)=0)return 0; return( ); void main() int m; char s120,s220; scanf(%s,s1); scanf(%s,s2); m= ; printf(the result is:%dn,m);四、填空题(每空1分,共10分)1、在C语言中,C程序的基本构成单位是 。一个C程序至少有且只有一个 。2、设int a=12; 则表达式a*=a+a的值是 。3、表达式x=(a=3,6*a)和表达式x=a=3,6*a分别是 表达式和 表达式。4、int *p5; 定义的p是一个 。5、数组名作函数参数时,从实参到形参传递的值是 。6、设a=3, b=4, c=5,则表达式 a|b+c&b-c 的值是 。7、函数feof的作用是 ;打开方式是“w”表示的是 。五、编程题(共29分,分别9分、10分、10分)1、有一个四位正整数a。如果将a的各个数字逆序存放得到另一个四位数b,即:b的千位、百位、十位、个位分别是a的个位、十位、百位、千位。已知:满足9a=b。求这个四位数a。2、对一个字符串,编写程序实现,循环左移长度的一半(如果长度n是奇数,则移动(n-1)/2)。例如:如果字符串是: ABCDEFGH 则循环左移后的结果是: EFGHABCD如果字符串是: ABCDEFGHI 则循环左移后的结果是: EFGHIABCD3、10个学生,5门课程的考试成绩,编写一个处理函数,统计每门课程不及格学生的人数。在主函数中输入所有成绩,调用处理函数,输出结果。模拟题A答案 一、选择题(每题2分,共20分)D C D B C B A A D C二、读程序写结果(每题3分,共21分)1、15 60 2、a=1,b=2 3、8 4、1 3 1 8 5、64 6、6,5,6 7、9三、程序填空(每空2分,共20分)1、 f=1 Fibonacci(8)2、 p=mn?n:m m%p!=0|n%p!=0 3、 in k=i sort(x,10)4、 0 *(p1+i)-*(p2+i) compare(str1,str2)四、填空题(每空1分,共10分) 指数形式 double 型 0 逗号(,) 赋值 指向一维数组的指针变量 数组的首地址 流式文件 关闭文件 二进制只读文件五、编程题(共29分,分别9分、10分、10分)1、有一个四位正整数x。如果将x的各个数字逆序存放得到另一个四位数y,即:y的千位、百位、十位、个位分别是x的个位、十位、百位、千位。已知:满足x=9y。求这个四位数x。参考答案:#includestdio.hvoid main() int x,y,a,b,c,d; for(a=1;a=9;a+) for(b=0;b=9;b+) for(c=0;c=9;c+) for(d=1;d0;i-) si=si-1; s0=tmp;void main() int n,i; char s40; gets(s); n=0; while(sn!=0)n+; for(i=0;in/2;i+) rightone(s); puts(s);3、10个学生,5门课程的考试成绩,编写一个处理函数,统计每个学生不及格课程的门数。在主函数中输入所有成绩,调用处理函数,输出结果。参考答案:#include#define M 10#define N 5void f(int sMN,int numM) int i,j; for(i=0;iM;i+) numi=0; for(j=0;jN;j+) if(sij60) numi+; void main()int i,j,sMN,numM;for(i=0;iM;i+)for(j=0;jN;j+)scanf(%d,&sij);f(s,num);for(i=0;iM;i+)printf(%3d,i);for(j=0;jn?n:m p- 3、 jn k=j sort(a,10)4、 i=0 *(p1+i)-*(p2+i) compare(s1,s2)四、填空题(每空1分,共10分) 函数 main函数 288 赋值 逗号 指针数组 数组首地址 1 判断文件是否结束 写入方式五、编程题(共29分,分别9分、10分、10分)评分标准:本题无标准答案,综合考虑学生的解题算法思路,算法的正确性,编写程序的完整性,书写认真程度酌情给分。1、有一个四位正整数a。如果将a的各个数字逆序存放得到另一个四位数b,即:b的千位、百位、十位、个位分别是a的个位、十位、百位、千位。已知:满足9a=b。求这个四位数a。参考答案:#includestdio.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论