




免费预览已结束,剩余5页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C程序设计样卷1一、单项选择题1. 以下叙述中不正确的是_。A)在函数中,通过return语句传回函数值 B)在函数中,可以有多个return语句C)在C中,main后的一对圆括号中也可以带有形参 D)在C中,函数的调用必需在一条独立的语句中完成2. 在C语言中,正确的实型常数是_。A)2eB).09C)3e2.1D)e53. 若一个外部变量的定义形式为static int x ; 其中static的作用是_。A)将变量存放在静态存储区,使x的值可以永久保留B)使变量x可以由系统自动初始化C)使x的值可以永久保留D)使x只能在本文件内引用4. 以下程序的输出结果是_。main ()int a = 12 , b = 12;printf (“ %d %dn”, - - a,+ + b ); A)10 10B)12 12C)11 10D)11 135. 若有下列定义:char c3,*pc=c; 则对c数组元素地址的正确引用是_。A)&c3B)pc+2C)c+D)&c6语句if (!i ) i+; 中的条件表达式 !i 等价于_。A)i=0B)i!=1C)i!=0D)-i7C语言中规定,if语句的嵌套结构中,else总是与_配对。A)与最近的if 配套B)与第一个if 配套C)按缩进位置相同的if配套D)与最近的且尚未配对的if 配套8当执行以下程序段时_。x=-1; do x=x*x; while(!x); A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误9简单变量做实参时,实参与其对应的形参之间的数据传递方式是_。A)双向值传递方式B)地址传递方式C)单向值传递方式D)用户指定传递方式10已知:float f =1.0, 2.3 , 4.5, *pf=f; 则以下哪项不能正确引用数组元素_ 。A)*pf-B)*(-pf)C)*(pf+)D)*(+pf)11设有程序段:“char s = char array; char *p; p=s; ”则下面叙述正确的是 。A)*p与s0相等B)s和p完全相同C)s数组长度和p所指向的字符串长度相等D)数组s中的内容和指针变量p中的内容相等12以下对二维数组c的声明正确的是 _ _ 。A)int c3 ;B)int c(3,4);C)int c(2)(2);D)int c32;13定义:float (*pf) ();说明了_。A)pf是指向一维数组的指针变量B)pf是指向float型数据的指针变量C)pf是指向函数的指针,该函数返回一个float型数据D)pf是一个函数名,该函数的返回值是指向float型数据的指针14. C语言中共用体类型变量在程序执行期间_。A)所有成员一直驻留在结构中B)只有一个成员驻留在结构中C)部分成员驻留在结构中D)没有成员驻留在结构中15以下有关宏替换的叙述不正确的是_。A)宏名必须用大写字母表示B)宏替换不占用运行时间C)宏名不具有类型D)宏替换只是字符替换16若要“为读/写建立一个新的文本文件”,在fopen函数中应使用的文件方式是_。A)“w+”B)“rb+”C)“ab+”D)“wb+”17两个基类型相同的指针变量之间,不能进行的运算是_。A)=a; i+) printf(%d,i );B)for(i=z; i=a; printf(%c,i-);C)for(i=z; i=a; i+) printf(%c,i );D)for(i=z; i=a; -i ) printf(%d,i);20设有说明int (* prt )5;其中标识符ptr是_。A)5个指向整型变量的指针B)指向5个整型变量的函数指针C)一个指向具有5个整型元素的一维数组的指针D)具有5个元素的一维指针数组,每个元素都只能指向整型变量二、程序阅读题(共 20 分 每题 4 分)1以下程序的输出结果是_。main ( ) int i=010,j=10,k=0x10;printf (“%d,%d,%dn”,i,j,k);8,10,162写出以下程序的功能。#include void main() int a,b,s; scanf(%d%d,&a,&b); s=a-b; if (ab) s=b-a; printf(%dn,s); 输入两个整数,输出两数的差的绝对值3以下程序的运行结果是 。#include void f(int a) int i=0;while (ai=10)printf(%3d,ai);i+;10 9void main()int a=12,5,10,9,13,4;f(a+2);4以下程序的运行结果是 。#includevoid inc () static int x=0;x+=2;printf(%d,x);void main()inc ();inc ();245写出以下函数的功能。#include int f(char *s)char *p=s;while(*p!=0) p+;return(p-s);三、程序填空题(共 20 分 每空 4 分)1以下程序用来求数组全部元素的和,请填写缺少的语句。#includevoid main( )int a =0,1,2,3,4,5,6,7,8,9;int s=0 , i, *p;p= (1) ;for (i=0; iamax) amax=x; if (xamin) amin=x; (5) ; if(n=0) printf(no valid inputn );else printf(nn=%d,amax=%d,amin=%dn,n,amax,amin);四、编程题1计算个人所得税,月收入的5000元以上部分征20%,800元以上5000元之间部分需缴纳3%的税,800元以下的部分免税。例如,小张月收入为6000元,则她需缴税(60005000)20%(5000-800)3%326元。编程,要求输入个人应发工资,计算并输出个人所得税。2、编写程序,从键盘输入一个字符序列(以字符#作为结束标志),将其中的英文小写字母全部转换成相应的英文大写字母,逐个字符写入一个名为test.dat的磁盘文本文件以保存。然后,从该文件中读取所存入的字符序列,将它们输出在显示屏上。请填空完善程序。 #include #include main() FILE *fp; char str80; int i=0; if (fp=fopen(test.dat,w)=NULL) printf(Cant open this file!); exit(0); printf(Enter a string,# to end: n); gets(str); while (stri!=_ _) fputc(stri=a&stri=z)? :stri,_ _); _ _; fclose (fp); fp=fopen(text.dat,r); _ _(str,strlen(str)+1,fp); printf(%sn,str); C程序设计样卷2一、单项选择题1以下不是c语言规定保留字的是( )。(A)float (B)integer (C)signed (D) unsigned2设int型变量x有初始值3,则表达式x+*5/10的值是( )(A)0 (B)1 (C)2 (D)33下述程序执行后的输出结果是( ) include main() int x=f; printf(%cn,a+(x-a+1); (A)G (B)H (C)I (D)J4设有程序#include main() int i,j; for (i=0,j=1;i100) break; (B)for (;); (C)int k=1000; do +k; while (k=10000); (D) int s=36; while (s);-s;6假定a和b为int型变量,则执行下述语句组后,b的值为( )。 a=1; b=10; do b-=a; a+; while (b-0); (A)9 (B)-2 (C)-1 (D)87设有变量说明语句 int a=1,b=0; 则执行以下程序段的输出结果为( )。 switch (a) case 1: switch (b) case 0:printf(*0*);break; case 1:printf(*1*);break; case 2:printf(*2*);break; printf(n); (A)*0* (B)*0*2* (C)*0*1*2* (D)有语法错误8以下合法的数组说明是( )。 (A)char a6=string; (B)int a5=0,1,2,3,4,5; (C)char a=string; (D)INT a=0,12,3,4,5;9下述程序代码中有语法错误的行是( )。 int i,ia10,ib10; /*第一行*/ for (i=0;i=9;i+) /*第2行*/ iai=0; /*第3行*/ ib=ia; /第4行*/ (A)第1行 (B)第2行 (C)第3行 (D)第4行10若已定义 int a9,*p=a; 并在以后的语句中未改变p的值,则不能表示a1地址的表达式是( )。(A)p+1 (B)a+1 (C)a+ (D)+p11若有下述说明和语句 int *pp,*p,a=10,b=20; pp=&p; p=&a; p=&b; printf(%d,%dn,*p,*pp); 则输出结果是( )。 (A)10,10 (B)10,20 (C)20,10 (D)20,2012执行下述程序后的输出结果是( )。 #include func(int a) int b=0; static int c=3; a=c+,b+; return (a); main() int a=2,i,k; for (i=0;i2;i+) k=func(a+); printf(%dn,k); (A)3 (B)0 (C)5 (D)413.执行下述程序的输出结果是( )。 #include main() int aa33=2,4,6; int i,*p=&aa00; for (i=0;i2;i+) if (i=0) aaii+1=*p+1; else +p; printf(%d,*p); printf(n); (A)23 (B)26 (C)33 (D)3614.读下面的程序,正确的输出结果是( )。 #include static int a=50; f1(int a) printf(%d,a+=10); f2(void) printf(%d,a+=3); main() int a=10; f1(a); f2(); printf(%dn,a); (A)60,63,60 (B)20,23,23 (C)20,13,10 (D)20,53,1015执行下述程序的输出结果是( )。 #include int power(int x,int y); main() float a=2.6,b=3.4; int p; p=power(int)a,(int)b); printf(%dn,p); int power(int x,int y) int i,p=1; for (i=y;i0;i-) p=p*x; return (p); (A)8 (B)9 (C)27 (D)8116.已知函数scopy的定义如下 void scopy(char *s,char *t) while (*s+=*t+); 则该函数的功能是( )。 (A)串复制 (B)求串长度 (C)串比较 (D)串反向17.执行下述程序的输出是( )。 #include main() struct complex int re; int im; ; struct complex cp3=2,5,4,7; cp2.re=cp0.re+cp1.re; cp2.im=im=cp0.im+cp1.im; printf(%d %dn,cp2.re,cp2.im; (A)7 11 (B)6 12 (C)9 9 (D)12 618.执行下述程序的输出结果是( )。 #include main() union int k; char i2; *s,a; s=&a; s-i0=0x39; s-i1=0x38; printf(%xn,s-k); (A)3839 (B)3938 (C)380039 (D)39003819.有以下程序 /* filename:file.c */ #include #include main(int argc,char *argv) FILE *fp1,*fp2; if (argc3) printf(Usage:file filename1 filename2n); exit(0); fp1=fopen(argv1,r); fp2=fopen(argv2,w); while (!feof(fp1) fputc (fgetc(fp1),fp2); fclose(fp1); fclose(fp2); 若在DOS提示符下输入如下的命令行 file abc.fil xyz.fil 且程序正常执行完毕。那么,该程序所实现的功能是( )。 (A)将文件xyz.fil的内容复制到文件abc.fil (B)将文件abc.fil的内容复制到文件夹xyz.fil (C)读取文件xyz.fil的内容并在屏幕上显示出来 (D)读取文件abc.fil的内容并在屏幕上显示出来20.以下程序for语句循环体中printf语句执行次数是( )。 #include #define N 2 #define M N+1 #define NUM (M+1)*m/2 main() int i; for (i=1;i=NUM;i+) printf(%dn,i); (A)5 (B)6 (C)8 (D)9二、程序阅读题1以下程序输出的结果是_。 #includevoid main()int n; for(n=1; n=10; n+)if (n%2) continue; printf(%dt,n); 2,4,6,8,102阅读以下函数,写出此函数的功能。float fun1(float a,int n) int i=1; float result=a0; for( ; iai) result=ai; return result; 求具有n个元素的float数组中的最小元素值,并返回该值。3以下程序的运行结果是 。#includeint a=8 , b=5;int max(int a,int b)int c;c=ab?a:b;return(c);void main()int a=2;printf(%dn,max(a,b);54运行以下程序,若输入:5 7时,写出程序的输出结果。#includevoid fun(int *p1, int *p2)int t;t=*p1;*p1=*p2;*p2=t;void main()int x,y;int *p1,*p2;scanf(%d %d,&x,&y);p1=&x; p2=&y;if(xy) fun(p1,p2);printf(x=%d,y=%d, x, y);x=7,y=55写出以下程序的功能。 #include main() int a5=1,5,2,4,3,i,j,t; for(j=1;j=4;j+) for(i=0;i=4-j;i+) if(aiai+1) t=ai; ai=ai+1; ai+1=t; for(i=0;i5;i+)printf(%d,ai); 三、程序填空题1以下函数的功能是返回b的e次幂。例如,intPow(2,3)的值为2*2*2。假定e是非0整数,b是整数。请填空。 int intPow(int b,int e)int result,n; (1) for(n=0; ne; n+) (2) ;return result; 2以下程序的功能是求出输入整数的个位数、十位数和百位数(1000以下的正整数)。请填空。#includevoid main()int x,a,b,c; doprintf(输入一个1000以下的正整数:); (3) ; printf(n); while( (4) ); if(x0) x=-x;a=x/100; b=(x-a*100)/10; c= (5) ; printf(%d的个位数是%d,十位数是%d,千位数是%dn,x,c,b,a); 四、编程题1计算个人所得税,月收入的5000元以上部分征20%,800元以上5000元之间部分需缴纳3%的税,800元以下的部分免税。例如,小张月收入为6000元,则她需缴税(60005000)20%(5000-800)3%326元。编程,要求输入个人应发工资,计算并输出个人所得税。2、编写程序,从键盘输入一个字符序列(以字符#作为结束标志),将其中的英文小写字母全部转换成相应的英文大写字母,逐个字符写入一个名为test.dat的磁盘文本文件以保存。然后,从该文件中读取所存入的字符序列,将它们输出在显示屏上。请填空完善程序。 #include #include main() FILE *fp; char str80; int i=0; if (fp=fopen(test.dat,w)=NULL) printf(Cant open this file!); exit(0); printf(Enter a string,# to end: n); gets(str); while (stri!=_ _) fputc(stri=a&stri=z)? :stri,_ _); _ _; fclose (fp); fp=fopen(text.dat,r); _ _(str,strlen(str)+1,fp); printf(%sn,str); C语言程序设计样卷3一、选择题1). 能直接执行的程序是机器语言程序,在机器内部以 形式表示。 A) 条形码 B) 拼音码 C) 内码 D) 二进制码2). 存储器每个单元都被赋予唯一的 称为地址。A) 容量 B) 字节 C) 序号 D) 功能3).一个字长的二进制位数是: 位A) 2 B) 8 C) 16 D) 随计算机系统而不同的。4).已知:int x; float y;所用的scanf调用语句格式为: scanf(“x=%d;y=%f”,&x,&y); 则为了将数据10和66.6分别赋给x和y,正确的输入应当是: A)x=10;y=66.6 B) x=10,y=66.6C)10 66.6 D) x=10 y=66.6 5).以下变量均为int 类型,则值不等于7的表达式是: A) (x=y=6,x+y,x+1) B) (x=y=6,x+y,y+1) C) (x=6,x+1,y=6,x+y) D) (y=6,y+1,x=y,x+1)6).下面程序的运行结果是: main() int x=10,y=10; printf(“%d %dn”,x-,-y); A) 10 9 B) 9 10 C) 10 10 D) 9 97).执行下面的程序段后,变量k中的值为: int k=3, s2; s0=k; k=s1*10;A) 不定值 B) 33 C) 30 D) 108).已知英文字母a的ASCII代码值是十六进制数61H,那么字母d的ASCII代码值是: A)34H B) 54H C) 24H D) 64H9) 若有以下说明: int a12=1,2,3,4,5,6,7,8,9,10,11,12; char c=a,d,g;则数值为4的表达式是: A) ag-c B)a4 C)ad-c D)ad-c10). 给出以下定义:char x=abcdefg;char y=a,b,c,d,e,f,g;则正确的叙述为: A)数组X和数组Y等价 B)数组x和数组Y的长度相同C)数组X的长度大于数组Y的长度 D)数组X的长度小于数组Y的长度 11).下列函数调用语句含有实参的个数为: func((x1,x2),(x3,x4,x5));A) 1B) 2 C) 4D) 512).若用数组名作函数参数,则传递的是: A) 数组的首地址B) 数组中第一个元素得值 C) 数组中全部元素的值D) 数组元素的个数13). 以下叙述中正确的是_. A)在程序的一行上可以出现多个有效的预处理命令行。 B)使用带参的宏时,参数的类型应与宏定义时的一致。 C)宏替换不占用运行时间,只占用编译时间。 D)在以下定义中C R是称为“宏名”的标识符 #define C R 04514).一个源文件中定义的外部变量的作用域: A) 本文件的全部范围。 B) 本程序的全部范围。C) 本函数的全部范围。 D)从定义该变量的位置开始至本文件结束。15).C语言规定,调用一个函数,实参与形参间数据传递方式: A) 地址传递 B) 值传递 C)双向传递 D)由用户指定传递方式16).若有说明:int i, j=7,*p=&i;则与;等价的语句是: A) *p; B) *p=*&j; C) i=&j; D) i=*p;17).下面程序段的运行结果是_. char *s=abcde; s+=2;printf(%d,s); A)cde B)字符c C)字符c的地址 D)无确定的输出结果18)设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确的执行的赋值语句是_.A)c=*p1+*p2; B)p2=c C)p1=p2 D)c=*p1*(*p2);19)若有说明语句 char a=It is mine; char *p=It is mine; 则以下不正确的叙述是_. A)a+1表示的是字符t的地址 B)p指向另外的字符串时,字符串的长度不受限制 C)p变量中存放的地址值可以改变 D)a中只能存放10个字符20)设有如下定义: struct sk int n; float x; data ,*p; 若要使p指向data中的n域,正确的赋值语句是_. A)p=&data.n; B)*p=data.n; C)p=(struct sk *)&data.n; D)p=(struct sk *)data.n;二、填空题1) 下面程序的运行结果是:_ #include “stdio.h”main() int x=23; do printf(“%d”,x-); while(!x); 2) 若a=1;b=2;则问号表达式ab?a:(b+1)的值是:_3) 若定义:char ch;使指针指向变量ch的定义语句是:_ 通过指针p给变量ch赋值字符A的语句是:_ 通过指针p输出变量ch中字符的语句是:_ 4) 循环语句for(x=0,y=0;(y!=123)&(x4);x+)执行的循环次数是:_次。5) fp = fopen(“file1”,”r”)实现的操作是:_ 6)下面程序的运行结果是:_#include “stdio.h” main() char a=“Program”,*p; for(p=a ; pa+7 ; p+=2) putchar(*p);7)以下程序的运行结果是_. struct n int x; char c; ;main() struct n a=10,x; func(a); printf(%d,%c,a.x,a.c); func(struct n b) b.x=20; b.c=y; 8)若x=2,y=3,则x&y的结果是_.三、程序填空1) 以下函数从数组an中查找最大值并把该最大值作为函数的返回值。 findmax(int a,int n) int *p ,*s;for(p=a ,s=a ; p-a10 ; p+) if( ) s=p;return(*s);2)有以下程序段: s=1.0; for(k=1;k=n ;k+) s=s+1.0/(k*(k+1); printf(“%fn”,s); 请填空,使下面程序段的功能完全与之等同。 s=0.0; ; k=0; do s=s+d; ; d=1.0/(k*(k+1); while( ); printf(“%fn”,s);3)下面的函数要求求出两个整数之和,并通过形参传回两个数相加之和的值。int add(int x,int y , z) =x+y;四、编程题1) 定义一个长度为10的整型一维数组,并完成以下各功能:(10分)从键盘输入10个整数,分别存放在10个数组元素中。(2分)将数组中的元素按逆序存放(完成逆序存放操作时,只允许开辟一个临时存储单元)。(3分)在的基础上,求出数组中的最小值,并和数组中的第0个元素呼唤。(3分)输出数组中各个元素的值。(2分)2)编程实现:13个人围成一圈,从第1个人开始顺序报号1、2、3。凡报到“3”者退出圈子,找出最后留在圈子中的人原来的序号。(10分) C语言程序设计样卷4一、选择题1). 存储器每个单元都被赋予唯一的 称为地址。A) 容量 B) 字节 C) 序号 D) 功能2).已知:int x; float y;所用的scanf调用语句格式为: scanf(“x=%dy=%f”,&x,&y); 则为了将数据20和66.6分别赋给x和y,正确的输入应当是: A)x=20 y=66.6 B) x=20,y=66.6C)20 66.6 D) x=20 y=66.6 3).以下变量均为int 类型,则值不等于7的表达式是: B) (x=y=6,x+y,x+1) B) (x=y=6,x+y,y+1) C) (x=6,x+1,y=6,x+y) D) (y=6,y+1,x=y,x+1)4).执行下面的程序段后,变量k中的值为: int k=3, s2; s0=k; k=s1*10;A) 不定值 B) 33 C) 30 D) 105).已知英文字母a的ASCII代码值是十六进制数61H,那么字母d的ASCII代码值是: A)34H B) 54H C) 24H D) 64H6)、错误的说明语句是:_A) char word=T, u, r, b, o, 0;B)char word=“Turbo0”;C) char word= “Turbo0”;D) char word= Turbo0;7)已知:int b5;则对b数组元素的正确引用是:_A) b5B) b3.5C) b(3)D) b10-108)、在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则定义为: A) Auto B) staticC)externD)register 9).下列函数调用语句含有实参的个数为: func((x1,x2),(x3,x4,x5));A) 1B) 2 C) 4D) 510).在C语言中,以下描述正确的是: A) 函数的定义可以嵌套,但函数的调用不可以B) 函数的定义不可以嵌套,但函数的调用可以C) 函数的定义和调用都不可以嵌套 D) 函数的定义和调用均可嵌套11)以下程序的运行结果是_. #define MIN(x,y) (x)(y)?(x):(y) main() int i=10,j=15,k; k=10*MIN(i,j); printf(%dn,k); A)10 B)15 C)100 D)15012).一个源文件中定义的外部变量的作用域: A) 本文件的全部范围。 B) 本程序的全部范围。C) 本函数的全部范围。 D)从定义该变量的位置开始至本文件结束。13).C语言规定,调用一个函数,实参与形参间数据传递方式: B) 地址传递 B) 值传递 C)双向传递 D)由用户指定传递方式14)若有以下定义,则对a数组元素的正确引用是_. int a5,*p=a; A)*&a5 B)a+2 C)*(p+5) D)*(a+2)15)若有定义:int a23,则对a数组的第i行j列元素地址的正确引用为_. A)*(ai+j) B)(a+i) C)*(a+j) D)ai+j16)下面程序的运行结果是_. #include #include main() char *s1=AbDeG; char *s2=AbdEg; s1+=2;s2+=2; printf(%dn,strcmp(s1,s2); A)正数 B)负数 C)零 D)不确定的值17)下面对typedef的叙述中不正确的是_. A)用typedef可以定义各种类型名,但不能用来定义变量 B)用typedef可以增加新类型 C)用typedef只是将已存在的类型用一个新的标识符来代表 D)使用typedef有利于程序的通用和移植18)以下对结构体变量stu1中成员age的非法引用是_.struct student int age; int num; stu1,*p; p=&stu1; A)stu1.age B)student.age C)p-age D)(*p).age19)以下叙述中不正确的是_. A)表达式a&=b等价于a=a&b B)表达式a|=b等价于a=a|b C)表达式a!=b等价于a=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论