




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
阅卷人一、选择题。(每空2分,共计40分)本试卷包括第一卷和第二卷,答卷时间总共120分钟)第一卷第一部分:基础知识(20项,共40分)1一个C语言程序是由(C ) 组成的。 A主程序 B子程序 C函数 D过程2转换说明符%x的输出形式是( C )。 A十进制 B八进制 C十六进制 D二进制3若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;+a,+b) printf ( “ -“) ;的正确说法是( C ) 。 A循环体只执行一次 B死循环 C循环体一次也不执行 D输出-4若x、y、z均为int 型变量,则执行下列语句后的z值为 ( A )。 x=1; y=2; z=3; z=(xy)?z :y ; z = (z=1;n-),下列语句实现将S2所指字符数组中前n个字符复制到S1所指字符数组中,其中代码不正确的是( D )。 A*S1+=*S2+ BS1n-1=S2n-1 C*(S1+n-1)=*(S2+n-1) D*(+S1)=*(+S2)17调用函数的实参与被调用函数的形参应该有如下关系( D ) 。 A只要求实参和形参个数相等 B只要求形参和实参顺序相同 C只要求实参和形参数据类型相同 D上述三点均需具备18联合体成员的数据类型 ( B )。A相同 B可以不同也可以相同 C长度一样 D是结构体变量19由系统分配和控制的标准输出文件为( D ) 。 A键盘 B磁盘 C打印机 D显示器20C语言标准库函数fread(fd,buffer,n)的功能是( A)。 A从文件fd中读取长度不超过n个字节的数据送入buffer指向的内存区域 B从文件fd中读取长度不超过n-1个字节的数据送入buffer指向的内存区域 C从文件fd中读取长度不超过n个字符送入buffer指向的内存区域 D从文件fd中读取长度不超过n-1个字符送入buffer指向的内存区域得分阅卷人二、简单程序(10项,共40分)21下列程序main() int x,y,z; x=y=2;z=3;y=z+-1; printf(“%dt%dt”,x,y); y=+x-1;printf(“%d t%dn”,x,y); y=z-1; printf(“%dt%dt”,z,y); y=-z-1; printf(“%dt%dn”,z,y);运行后输出的数据为_C_。A. 3 1 4 2 B. 3 1 3 3 C. 2 2 3 2 D. 2 1 3 2 2 4 1 3 2 4 2 2 3 3 2 1 1 3 1 222.下列程序main() int i,j;char *a,c;a=”computer”;printf(“%s”,a);for(i=0,j=7;i%sn”,a);c=aj-1,i=2+j;printf(“a%d=%cn”,i,c);运行后输出的数据为_B_ . A. computer-computer B. computer-retupmoca3=u a5=mC. computer-retupmoc D. computer-retupmoca4=p a2=t23.下列程序int sum(int n) int p=1,s=0,i;for(i=1;i=n;i+) s+=(p*=i);return s;main() printf(“sum(5)=%dn”,sum(5);运行后输出的数据为_ _C_A.sum(5)=151 B.sum(5)=152 C.sum(5)=153 Dsum(5)=15524.下列程序main() static int a=5,6,7,3,2,9;int s1,s2,i,*ptr;s1=s2=0;ptr=&a0;for(i=0;i5;i+2=2) s1+=*(ptr+i);s2+=*(ptr+i+1);printf(“s1=%d,s2=%dn”,s1,s2);运行后输出的数据为_C_A.s1=18,s2=14 B.s1=14,s2=32 C.s1=14,s2=18 D.s1=15,s2=1925.下列程序int c=1;main()static int a=5;int b=6;printf(“a=%d b=%d c=%dn”,a,b,c);func();printf(“a=%d,b=%d,c=%dn”,a,b,c);func();func() static int a=4;int b=10;姓名班级学号座号密封线a+=2;c+=10;b+=c;printf(“a=%d,b=%d,c=%dn”,a,b,c);运行后输出的数据为_ A _.A. a=5 b=6 c=1 B. a=5 b=6 c=1 a=6 b=21 c=11 a=7 b=17 c=11 a=5 b=6 c=11 a=5 b=6 c=11 a=8 b=31 c=21 a=9 b=17 c=21 C. a=5 b=6 c=1 D. a=5 b=6 c=1a=6 b=21 c=11 a=7 b=17 c=11a=6 b=21 c=11 a=7 b=17 c=11a=8 b=31 c=21 a=9 b=38 c=2126已知struct studentchar name; int student_n; char grade; struct student temp,*p=&temp;=”chou”;则下面不正确的是_B_。 表达式 值A.pname chou B.(*p)name+2 h C.*pname+2 e D.*(pname+2) o27.下列程序 #define MAX 10 main() int i,sum,a =1,2,3,4,5,6,7,8,9,10; sum=1;for(i=0;iMAX;i+)sum-=ai;printf(“SUM=%d”,sum); 程序运行结果是: B A.SUM=55 B.SUM=-54 C.SUM=-55 D.SUM=5428.下列程序 D void inv(int*x,int n) int *p,t,*i,*j,m=(n-1)/2;i=x;j=x+n-1;p=x+m;for(;ip;i+,j-) t=*i;*i=*j;*j=t; return; main( ) static int i,a10=3,7,9,11,0,6,7,5,4,2; inv(a,10);for(i=0;i10;i+) printf(“%d,”,ai); 程序运行结果: A.0,2,3,4,5,6,7,7,9,11 B.11,9,7,7,6,5,4,3,2,0 C.3,7,9,11,0,6,7,5,4,2 D.2,4,5,7,6,0,11,9,7,329.下列程序 main() int a10,b10,*pa,*pb,i; pa=a;pb=b; for(i=0;i3;i+,pa+,pb+) *pa=i;*pb=2*i; printf(“%dt%dn”,*pa,*pb);printf(“n”);pa=&a0;pb=&b0;for(i=0;i3;i+) *pa=*pa+i; *pb=*pb*i; printf(“%dt%dn”,*pa+,*pb+); 运行后输出的数据为_A_。A. 0 0 B.0 0 C. 0 0 D. 0 0 1 2 1 2 1 2 2 2 2 4 2 4 2 4 2 4 0 0 0 0 0 0 0 0 2 2 2 2 1 2 1 2 4 8 2 4 2 4 4 830.下列程序 copy_string(from,to) char *from,*to; while(*from) *to+=*from+; *to=0; main() static char s1 =”c_program.”; static char s280; copy_string(s1,s2); printf(“%sn”,s2);copy_string(“123”,s2);printf(“%sn”,s2); 运行后输出的数据为(D )。 A.c_program 123 B.123 C.c_program123 D.c_program 123得分阅卷人三、编程题题。(20分)(1) 已知三个字符串,分别是“C Language”、“Final Exam”和你名字的拼音,请按由大到小的顺序输出。要求将字符串的排序写成函数C卷答案一基础知识(20项,共40分) 1.C 2.C 3.C 4.A 5.D 6.B 7.B 8.B 9.C 10.A 11.C 12.B 13.B 14.D 15.A 16.D 17.D 18.B 19.D 20.A 二简单程序 21.C 22.B 23.C 24.C 25.A 26.B 27.B 28.D 29.A 30.D三(1) #include#includevoid sort(char *name ,int n);main()char *name=C Language,Final Exam,考生姓名;int i,n=3;sort(name,n);for(i=0;i3;i+)printf(%sn,namei);void sort(char *name ,int n)char *temp; int i,j,k; for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if(strcmp(namek,namej)0) k=j;if(k!=i)temp=namei; namei=namek; namek=temp; 得分阅卷人一、填空题。(每空1分,共计30分)1、与十进制数37等值的二进制数为 。 2、C语言中一共有 个关键字和 控制语句。3、在C语言中,正确的标识符是由 组成的,并且由 开头的。4、C语言上机步骤分为 ; ;链接程序和 。5、要想定义整型变量a,实型变量b,字符型的变量c,应该使用的正确语句为 ; ; 。6、C语言中,在给出逻辑运算结果时,以 代表真,以 代表假。 7、一般C语言程序是由 构成的,而C语言程序的执行是由 构成的。8、定义int i=1;执行语句 while(i+5); 后,i的值为 。 9、定义3行4列的字符型二维数组a的语句是 。10、int a8=11,23,45,33,7,0,8,9,则数组的第5个元素表示为 ,第五个元素的值为 。11、若一个函数带回返回值,则该函数要用 语句来返回。12、int *p,a; 则语句 p=&a;中的运算符&是 符号。13、设y是int型变量,请写出判断y为奇数的关系表达式 。 14、设x=3,那么表达式y=(+x)+(+x)的结果为 ,表达式执行后,变量x的结果为 。15、c语言提供的编译预处理功能主要有 、 和 条件编译。16、c语言指针中把变量的地址称为 ;把存放变量地址的变量称为 。17、根据文件的组织形式可把文件分为 和 。得分阅卷人二、选择填空。(每小题2分,共计40分)、设有说明语句:char a= 72abc;则变量a ( )A) 包含6个字符B) 包含5个字符 C) 包含4个字符 D) 说明不合法2、在C语言中,数字029是一个()A)八进制数 B)十六进制数 C)十进制数 D)非法数3、有如下程序main( ) int y=3,x=3,z=1; printf(%d %dn,(+x,y+),z+2); 运行该程序的输出结果是( )A)3 4B)4 2C)4 3 D)3 34、有如下程序段int a=14,b=15,x;char c=A;x=(a&b)&(cB);执行该程序段后,x的值为()A)ture B)falseC)0D)1、如下程序 main( ) int x=1,a=0,b=0; switch(x) case 0:b+;case 1:a+;case 2:a+;b+;printf(a=%d,b=%dn,a,b);该程序的输出结果是()A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2、main( ) int i,j;for(i=0,j=1; i=j+1; i+=2, j-)printf(%d n,i);以上循环体的执行次数是()A)3 B)2 C)1D)07、设有数组定义:char array =China; 则数组 array所占的空间为()A)4个字节 B)5个字节 C)6个字节D)7个字节、C语言的编译系统对宏命令是( ) A)在程序运行时进行代换处理的 B)在程序连接时进行代换处理的 C)和源程序中其它C语句同时进行编译的 D)在对源程序中其它成份正式编译之前进行处理的、以下说法中正确的是()。A)C语言程序总是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main( )中有定义C)C语言程序的执行既可以采用解释方式,也可以采用编译方式D)C语言程序中的main( )函数可以不放在程序的开始部分10、下面程序的输出是( ) #define SUB(X,Y) (X)*Y main( ) int a=3,b=4; printf(%dn,SUB(a+,b+); A)12B)15C)16D)2011、设有如下定义:char *aa2=“abcd”,”ABCD”;则以下说法中正确的是( )A)aa数组元素的值分别是“abcd”,”ABCD”B)aa是指针变量,它指向含有两个数组元素的字符型一维数组C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址D)aa数组的两个元素中各自存放了字符a,A的地址12、若变量已正确说明为float类型,要通过语句scanf(%f %f %f ,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:( )A) 10 B) 10.0,22.0,33.0 22 33C) 10.0 D) 10 22 22.0 33.0 3313、当调用函数时,实参是一个数组名,则向函数传送的是( )A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D) 数组每个元素中的值14、有以下函数char *fun(char *p) return p; 该函数的返回值是()A) 无确切的值 B) 形参p中存放的地址值B) 一个临时存储单元的地址 D) 形参p自身的地址值15、 若有以下的定义:int t32;能正确表示t数组元素地址的表达是( )A) &t32 B) t32 C) t10 D) t2+116、以下程序的输出结果是( )A)#*#*# B)# C)* D)*#*#*main( ) int i;for(i=1;i6;i+) if(i%2) printf(#);continue;printf(*);printf(n);17、已知有声明语句char s110= abcde,s310;以下语句中能将s1中存储的字符串和s2中存储的字符串正确交换的是 。 A) s3=s1,s1=s2,s2=s3; B) s30=s10,s10=s20,s20=30;C)strcpy(s30,s10),strcpy(s10,s20),strcpy(s20,s30);D) strcpy(s3,s1),strcpy(s1,s2),strcpy(s2,s3);18、若有声明语句int a10,b33;则以下对数组元素赋值的操作中,不会出现越界访问的是 。A) a-1=1 B) a10=0C) b30=0 D)00=019、以下是一个自定义函数的头部,其中正确的是。A) int fun(int a ,b)B) int fun(int a ,int a) C) int fun(int *a,int b)D)int fun(char a ,int b)20、下列4个函数中,( )能实现交换变量值的功能。A)void fun_a(int x,int y)B)void fun_b(int *x,int *y)int *p; int *p;*p=x;x=y;y=*p; *x=*y;*y=*x;C)void fun_c(int *x,int *y) D)void fun_d(int x,int y)*x=*x+*y;int p;*y=*x-*y;p=x;x=y;y=p;*x=*x-*y; 姓名班级学号座号密封线得分阅卷人三、程序填空题。(每小题2分,共计20分)1、已知:int x=3;则printf(x%2?*%d:#%dn,x);printf(00000n);输出结果为:2、下列程序的输出结果是#include stdio.hmain()char a11=0123456789,*p;p=&a4;puts(p);3、求两数中的较大main() float a,b,max; scanf(“%f%f”,&a,&b); ;printf(“the max is %fn”,max);4、下面的程序输出3到1000之间的所有素数,且每个一行。main( )int i,j,k,c;c=0; for(i=3;i=1000;i+) k= ; for(j=2;j=k+1)printf(%4d,i); c=c+1;if ( ) printf(n); 5、下列程序用于将从键盘输入的整数逆序输出main( ) int n1,n2;scanf(%d,&n2);while() n1=n2%10;n2=;printf(%d,n1);6、利用插入排序法将十个字符从小到大排序#include void insert(char s) int i,j,t; for (i=1;i=0)&( ) sj+1=sj; ; sj+1=t; main() char a11;int i; for (i=0;i10;i+) ai=getchar(); insert(a);puts)a);得分阅卷人四、程序题。(每小题5分,共计10分)1、 阅读下列程序,分析并写出运行结果 void main() int i,k,j; for(i=1;i=9;i+) for (k=1;k=10-i;k+) printf( ); for (j=1;j=2*i-1;j+) printf(%c,48+i); printf(n); 2、阅读下列程序,分析并写出运行结果 #include main()int i,j;int a1010;printf(n);for(i=0;i10;i+)ai0=1;aii=1;for(i=2;i10;i+)for(j=1;ji;j+)aij=ai-1j-1+ai-1j;for(i=0;i10;i+)for(j=0;jb) max=a; else max=b 4、#include #include main( )int i,j,k,c;c=0; for(i=3;i=1000;i+) k=sqrt(i); for(j=2;j=k+1)printf(%4d,i); c=c+1;if (c%5=0) printf(n); 222 33333 4444444 555555555 66666666666 7777777777777 888888888888888 99999999999999997一、填空题。(每空1分,共计25分)1、一般C语言程序是由 构成的,而C语言程序的执行是由 开始的。2、C语言的程序结构分为 选择结构字和 ;C语言的语句的结束符是 。3、在C语言中,正确的标识符是由 组成的,并且由 开头的。4、C语言的构造类型包括 ; ; 。5、C语言中,在给出逻辑运算结果时,以 代表真,以 代表假。 6、若float a=5.75;则(int) a= 。7、定义int i=1;执行语句 while(i+age D) (*p).age(7)指针变量一定不能进行的运算是 。A)+ B)- C)= D)/(8)以下关于main()函数的说法,正确的是 。A) main()必须是程序的第一行 B)main()可以有参数C) 一个程序可以有多个main() D)main()可以被用户自定义的函数调用(9)关于下面的函数,正确的说法是 。void Swap(int *p1, int *p2) int *p; *p = *p1; *p1 = *p2; *p2 = *p;A) 交换*p1和*p2的值 B) 正确,但无法改变*p1和*p2的值C) 交换*p1和*p2的地址 D) 编译时可能出现警告错误(10)若对文件的操作未到文件尾时,feof(fp)函数的返回值是 。A)EOF B)1 C)0 D)不定的非零值得分阅卷人三、读程序,写结果。(每小题5分,共15分)(1)输入20和30,写出其输出结果。#includevoid input(int *p,int *q);void add(int *p,int *q);void process(int *p,int *q,void (*fun)(int *,int *); main()int a,b;process(&a,&b,input);process(&a,&b,add);void input(int *p,int *q)printf(Input:);scanf(%d%d,p,q);void add(int *p,int *q)printf(Output:%dn,*p+*q);void process(int *p,int *q,void (*fun)(int *,int *) (*fun)(p,q);结果为:(2)#include main()int a34=1,3,5,7,9,11,13,15,17,19,21,23;int *p;for(p=a0;pa0+12;p+)if(p-a0)%4=0)printf(n);printf(%4d,+(*p);19如果在用户的程序中要使用C库函数中的数学函数时,应在该源文件中使用的include命令是_。A)#includeB)#includeC)#includeD)#include20以下关于typedef的叙述不正确的是_。A)用typedef可以定义各种类型名,但不能用来定义变量B)用typedef可以增加新类型C)用typedef只是将已存在的类型用一个新的名称来代表D)使用typedef便于程序的通用和移植21以下对二维数组c的声明正确的是 _ _ 。A)int c3 ;B)int c(3,4);C)int c(2)(2);D)int c32;22定义:float (*pf) ();说明了_。A)pf是指向一维数组的指针变量B)pf是指向float型数据的指针变量C)pf是指向函数的指针,该函数返回一个float型数据D)pf是一个函数名,该函数的返回值是指向float型数据的指针得分阅卷人三、程序填空题。(每小题 5分,共计20分)1、下列程序用于将从键盘输入的整数逆序输出main( ) int n1,n2;scanf(%d,&n2);while() n1=n2%10;n2=;printf(%d,n1);2、下面的程序输出3到1000之间的所有素数,且每个一行。main( )int i,j;#include void find(int *a,int n,int *max,int *min);main()int max,min,a=8,3,7,1,4,6,9,5;find( );printf(max=%d,min=%dn,max,min);void find(int *a,int n,int *max,int *min)int i;*max=0;*min=0;for(i=0;ia*max) ;if(aia*min) ;(1) 下面程序用变量count统计文件中字符的个数。#include #include main()FILE *fp;char ch;long count=0;if(fp=fopen(letter.dat, )=NULL)printf(cannot open this filen); exit(0);while( )!=EOF) ;printf(count=%ldn,count);fclose(fp);得分阅卷人五、程序题。(每小题11分,共计22分)1、 已知三个字符串,分别是“C Language”、“Final Exam”和你名字的拼音,请按由大到小的顺序输出。要求将字符串的排序写成函数。(11分)(2)用结构体方法编程实现输入十个学生的姓名、性别、成绩,求平均成绩,把低于平均成绩的男生的姓名与分数输
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年辅警招聘考试综合提升试卷含答案详解(a卷)
- (2025)辅警招聘考试试题库含答案详解(新)
- 2022年2月韶关市税务系统遴选面试真题回忆版
- 2025年中考冲刺模拟道德与法治(贵州卷)(全解全析)
- 2022年11月三明市税务系统遴选面试真题附详解
- 2025年行政执法基础知识综合练习题及1套完整答案详解
- 2024年甘肃陕煤集团韩城煤矿招聘笔试真题及答案详解一套
- 2009河北中考数学试题及答案
- 丽江云南丽江市交通运输综合行政执法支队执法辅助人员招聘6人笔试历年参考题库含答案详解(培优)
- 光子知情同意书
- 2025年中考历史满分答题技巧解读(超强)
- 凉山州会理市全国考调事业单位人员考试真题2024
- 2025年小升初语文冲刺押题试卷
- 2024年济南长清产业发展投资控股集团有限公司招聘笔试真题
- 第23课《“蛟龙”探海》课件-2024-2025学年统编版语文七年级下册第六单元
- GB/T 13460-2025再生橡胶通用规范
- 2025年中考数学必考基础知识点中考总复习总结归纳
- 【MOOC期末】《Academic Writing 学术英语写作》(东南大学)中国大学慕课答案
- 【MOOC】数字逻辑电路实验-东南大学 中国大学慕课MOOC答案
- 广东省广州市2024年中考数学真题试卷(含答案)
- TSG+11-2020锅炉安全技术规程
评论
0/150
提交评论