C语言模拟试卷4

合集下载

天津专升本2020徐老师C语言模拟试卷1-9

天津专升本2020徐老师C语言模拟试卷1-9

C语言模拟试卷(1)难度指数:★★★一、单选1、以下叙述不正确的是()A、分号是C语言的重要组成部分B、C语言的注释可以写在语句的后面C、函数是C语言的基本组成单位D、主函数的名字不一定非用main来表示2、若有定义:char s[]={“Girl”};执行下面语句后输出的结果为()s[0]=s[2];s[2]=s[0];s[1]=s[4];s[4]=s[1];printf(“%c,%s”,s[0],s);A、r,GirlB、r,rC、r,lirGD、r,Gril3、下列与语句while(1){if(i>100)break;s+=i;i++;}功能相同的是()A、for(;i<100;i++)s=s+i;B、for(;i<100;i++,s=s+i);C、for(;i<=100;i++)s+=i;D、for(;i>=100;i++,s=s+i);4、下面语句输出正确的是()main(){int a=025;printf(“%d,%o,%x”,a,a,a);}A、21,025,0x15B、21,25,15C、25,25,25D、21,25,f5、从键盘上输入8,则运行的结果为()main(){int a;scanf(“%d”,&a);if(a++>8)printf(“%d,”,a++);else printf(“%d,”,a--);printf(“%d”,a);}A、8,8B、9,9C、9,8D、8,96、下面合法的语句为()A、a=1,b=2B、++a;C、a=a+1=s;D、y=int(a);7、下面标识符不合法的是()A、includeB、CaseC、sumD、_12/38、以下不能对二维数组初始化的是()A、int a[4][2]={0};B、char a[][3]={“abc”,“def”};C、int a[][3]={1,2,3,4,5};D、char a[3][4]={’a’,’b’,’c’};9、下面程序输出的结果是()main(){char ch[]=“abc\01d5\678x\xay\0\””;printf(“%d”,strlen(ch));}A、3B、11C、12D、1010、设有两个字符数组a,b,下面正确的输入语句是()A、gets(a,b);B、scanf(“%s%s”,a,b);C、scanf(“%s%s”,&a,&b);D、gets(“a”),gets(“b”);11、TC环境下下面程序的输出结果为()main(){int a=0;While(a>=0)a++;printf(“%d”,a);}A、程序为死循环B、-32768C、32768D、012、已知ch被定义为字符变量,以下语句正确的是()A、ch=“\”;B、ch=‘\108’;C、ch=65;D、ch=“A”;13、执行下面语句后,a、b、c的值分别为()int a,b,c;a=b=c=0;a++||b++&&++c;A、1,1,0B、0,1,1C、1,0,1D、1,1,114、对于以下变量定义,正确的赋值是()int*p[3],arr[3];A、p=a;B、*p=arr[0];C、p=&arr[0];D、*p=arr;15、以下程序的运行结果为()#define N3#define Y(n)((N+1)*n)main(){int z;z=2*(N+Y(5+1));printf(“%d”,z);}A、出错B、42C、48D、5416、以下程序的运行结果为()void fun(int n){if(n)fun(n-1);printf(“%d”,n);}main(){fun(5);}A、12345B、54321C、012345D、54321017、指针变量p1,p2类型相同,且均已经被正确赋值,则下列哪个语句使p1,p2指向同一变量()A、p2=*&p1;B、p2=**p1;C、p2=&p1;D、p2=*p1;18、以下程序的输出结果是()void f(int x,int y){int z;z=x;x=y;y=z;}main(){int x=1,y=3,z=2;if(x>y)f(x,y);else if(y>z)f(y,z);else f(x,z);printf(“%d,%d,%d”,x,y,z);}A、1,2,3,B、3,1,2C、1,3,2D、2,3,119、设有以下语句,则下面赋值语句错误的是()struct S {int num;char name[20];float score;}stud[10],*p=stud;A、stud[1].num=10;B、S.stud.num=10;C、p->num=10;D、(*p).num=10;20、在下列语句中,其含义为“p 为带回一个指针的函数”的定义语句是()A、int *p();B、int **p;C、int (*p)();D、int *p;二、判断(((((((((((((((三、填空1、有如下定义:int (*p)[3];则p 是变量。

专升本考试C语言模拟试题及参考答案

专升本考试C语言模拟试题及参考答案

精品文档以下程序的输出结果是【38】。

# include<stdio.h># define FUDGE(y) 2.84+y * H& O- |+ J7 K# define PR(a) printf(%d,(int)(a)) N/ L; u- b7 ~2 e# define PRINT1(a) PR(a);putchar('\n') s G/ V; K/ b main(){int x=2; PRINT1(FUDGE(5)*x); } 5 d0 r9 i) l* o【38】A) 11 B) 12 C) 13 D) 15 以下程序的输出结果是【39】。

# include<stdio.h> ! t4 W0 n1 S' U: \/ a main(){ int i=1,j=3; . y$ d8 u2 ^$ d @( N6 D printf(%d,i + + );{ int i=0; i+=j*2; printf(%d,%d,i,j); } 0 m( c( T/ T+ ^) E4 K `) v printf(%d,%d\n,i,j); }【39】A) 1,6,3,1,3 B) 1,6,3,2,3 C) 1,6,3,6,3 D) 1,7,3,2,3以下程序的输出结果是【40】。

5 m9 t p4 j+ n* ]- Z. s. C# include <stdio.h> ! T% B1 z! {1 k- _! S$ Y$ a3 g& w main() + D$ D* y |- e0 `- a- b{ int k=4,m=1,p; ; t5 {( ~1 G g* N3 L$ [9 w. x p=func(k,m); printf(%d,,p); p=func(k,m); printf(%d\n,p);} $ B( Z3 r5 ^* @5 C. ^) W func(a,b)int a,b; 7 J3 O, w- f' M6 |! t* N5 L0 Z9 t{ static int m=0,i=2; & {* n; N% g; Y; ]2 ^( K i+=m+1; m=i+a+b; return(m); } ) G( v+ J) z( O1 u【40】A) 8,17 B) 8,16 C) 8,20 D) 8,8 * Q& r) D4 `1 T m8 W+ h; _设有以下语句:! F/ p% T; V9 g( H' M1 j+ J char str[4][12]={aaa,bbb,ccccc,dddddd}, # d- q# S; \2 R3 `, v, A*strp[4]; int i; ! D2 Z1 D, h+ Z0 v3 o( E+ H: @for(i=0;i<4;i + + )strp[i]=str[i];【41】不是对字符串的正确引用,其中0≤k<4。

C语言模拟试卷及答案

C语言模拟试卷及答案

C语言模拟试卷及答案2021d2021学年第一学期《c语言程序设计》模拟试卷(b)一、单项选择题(每题1分,共30分)1.C语言程序总是从开始执行开始。

a)第一个语句b)第一个函数c)主函数d)子程序2。

以下选项中正确的C语言标识符是。

a) a+bb)3dmaxc)25d)ó。

在以下选项中,_________________。

a) '\\t'b)\C''ABC'd''279'4。

在下面的选项中,C语言的基本数据类型是_u。

a)逻辑类型b)双精度类型C)复杂类型D)集合类型5。

已知:inta=8,B=5,C;,然后执行语句C=a%B+0.3;在那之后,C的值是_。

a) 1b)1.3c)3D)3.36。

A、程序中的B和C集被定义为整数,并且给出了大于1的值,这可以正确地表示代数公式1的表达式abc是______。

a)1/a*b*cb)1/(a*b*c)c)1/a/b/(float)cd)1.0/a/b/c7.已知字符'a'的ascii码值为十进制数65,则执行语句printf(\______。

a)ab)cc)65d)678.已知:inti=1;,则执行语句printf(\a)1b)2c)-1d)-29.以下选项中,和语句x*=y+2;等价的是______。

a)x=x*y+2;b)y=x*(y+2);c)x=y+2*x;d)x=x*(y+2);10.以下选项中能正确判断字符变量c不是大写字母的表达式是______。

a)c'z'b)!(c'z')c)c>='a'||c<='z'd)!(c>='a'&&c<='z')11.已知:floata=7.0,b=2.5;,则表达式(int)a/(int)b的值是______。

长安大学网络教育《C语言程序设计》模拟试卷及参考答案

长安大学网络教育《C语言程序设计》模拟试卷及参考答案

一、填空题(本题每空1分,共计15分)1.设int a = 2,b = 3;float x = 3.5,y =2.5;表达式(float)(a+b)/2+(int)x%(int)y的值为3.5 。

2.结构化程序设计的三种基本结构是顺序结构,选择结构,循环结构。

3.设a = 3 , b = 2 , c = 1 , 则!(a+b)+c-6&&c+b%2的值为 1 。

4.int a = 6 ; 若a *= 2+3,则a = 30 ;又若a /= a+a,则a = 0 ;又若a+=a-= a*=a,则a = 0 ;5.int a = 2 ,b ,c ; b = ++a ; c = (a++)+(b++) ; 则c = 6 ,a = 4 ,b = 46、判断char型变量ch是否为大写字母的正确表达式是:ch>=’A’&&ch<=’z’7、若a=1;b= 2;c=2; if(a<b<c) {t= a;a=b; b=t; c--;}则a= 2 ,b= 1 ,c= 1 ,二、选择题(本题有15个小题,每小题2分,共计30分,每题只有一个正确答案)1、C程序的执行是从(A)A)本程序的main函数开始,到main函数结束B)本程序文件的第-个函数开始,到本程序文件的最后-个函数结束C)本程序的main函数开始,到本程序文件的最后-个函数结束D)本程序文件的第-个函数开始,到本程序main函数结束2、若有说明:char *language[]={"FORTRAN","BASIC","PASCAL", "JA V A","C"};则以下不正确的叙述是(D)。

A)language+2表示字符串"PASCAL"的首地址B)*language[2」的值是字母PC)language是一个字符型指针数组,它包含5个元素,D)每个元素都是一个指向字符串变量的指针3、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值为(B):A)7 B)8 C)6 D)24、下面四个选项中,均是不合法的用户标识符的选项是(C)A) A P_0 doB)float a0 _AC)b-a goto intD)-123 temp INT5、sizeof(float)是(B):A)一个双精度型表达式B) 一个整型表达式C) 一种函数调用D) 一个不合法的表达式6、设有说明:char w; int x; f1oat y; double z;则表达式w* x+z-y值的数据类型为(D):A)float B)char C)int D)double7、阅读下程序,若运行结果为如下形式,输入输出语句的正确内容是(B): main(){int x; float y; printf("enter x,y:")输入语句输出语句}输入形式enter x,y: 2 3.4输出形式x+y=5.40A)scanf("%d,%f",&x,&y);printf("\nx+y= %4.2f",x+y);B)scanf("%d%f",&x,&y );printf("\nx+y=%4.2f",x+y);C)scanf("%d%f",&x,&y); printf("\nx+y=%6.lf",x+y);D)scanf("%d%3.1f",&x,&y );printf("\nx+y=%4.2f",x+y);8、根据下面的走义,能打印出字母M的语句是(D)struct person{char name[9];int age;}struct person class[10]={"John",17,"Paul",19,"Mary",18,"adam",16 };A)printf("%c\n",class[3].name);B)printf("%c\n",class[3].name[1]);C)printf("%c\n",class[2].name[1]);D)printf("%c\n",class[2].name[0]);9、若有以下定义和语句:struct student{int age;int num;};struct student stu[3]={{1001,20},{1002,19},{1003,21}};main(){struct student *p;p=stu;...}则以下不正确的引用是(D)。

计算机c语言模拟试卷

计算机c语言模拟试卷

一、选择题 ( )1、在Visual C++编译系统中,用char定义的变量能表示的数的范围是: A) 0 ~ +255 B) 0 ~ +65535 C) -128 ~ +127 D) 只能存字符,不能存数

( )2、设有int k=2; 则执行printf(“%d”,k++);的输出为: A) 0 B) 1 C) 2 D) 3

( )4、设有声明int value=’5’;,则执行下列选项的赋值语句后,value的值不等于5的是_____。 A.) value=value - ’0’; B) value=value - 0x30; C) value=value - 49; D) value=value - ’\060’;

( )5、如int k=7;float x=2.5,y=4.7; 则表达式 x+k%3*(int)(x+y)%2/4 运 算后的值是: A) 0 B) 2 C) 2.5 D) 2.75

( ) 6、若有int a,b;则语句:printf("%d",(a=2)&&(b=-2);的输出结果是: A)无输出 B)结果不确定 C)-1 D)1

( ) 7、设有int a=2; 则执行printf("%d",5>a>1);的输出为: A)0 B)1 C)2 D)3 ( ) 8、执行语句c=(a=2,a+1,b=a++);后, a,b,c的值依次为: A)2,3,4 B)3,3,3 C)4,5,4 D)3,2,2 ( )9、以下程序的输出结果是 A)2 0 B)3 1 C)3 2 1 D)2 1 0 main( ) { int n=4; while(n--) printf("%d ",--n); } ( )10、给出以下定义: char x[ ]="abcdef"; char y[ ]={'a','b','c','d','e','f'}; 则正确的叙述为 A) 数组x和数组y等价 B) 数组x和数组y的长度相同 C) 数组x的长度大于数组y的长度 D) 数组x的长度小于数组y的长度 2 2 二、填空题 1. C语言中的标识符可以由三种字符组成,它们是_字母__、__下划线_和_数字_。 2. 关键字case和default只能在__switch_ 语句中出现。 3. 若有说明int a [][4]={1, 2,3,4,5,6,7,8, 9};,则数组a第一维的大小是__3__。 4.有定义: int a[3][4]={{1,2},{3},{6,7,8,8}}; 则a[1][2]的初值是___0__, a[2][1]的值是___7___。

全国计算机等级考试二级-基础知识和C语言程序设计 模拟考试试卷及答案(四)

全国计算机等级考试二级-基础知识和C语言程序设计  模拟考试试卷及答案(四)

全国计算机等级考试二级-基础知识和C语言程序设计模拟考试试卷及答案(四)一、选择题(1)通常所说的主机主要包括A)CPU B)CPU和内存C)CPU、内存与外存 D)CPU、内存与硬盘(2)在微机系统中,最基本的输入输出模块BIOS存放在A)RAM中 B)ROM中 C)硬盘中 D)寄存器中(3)一个24*24点阵的汉字字形信息所占的字节数为A)2 B)24 C)32 D)72(4)bit的意思是A)字 B)字长 C)字节 D)二进制位(5)某学校的工资管理程序属于A)系统程序 B)应用程序C)工具软件 D)文字处理软件(6)与十六进制数BB等值的十进制数是A)187 B)188 C)185 D)186(7) 设一张软盘已染上病毒,能清除病毒的措施是A)删除该软盘上的所有文件 B)格式化该软盘C)删除该软盘上的所有可执行文件 C)删除该软盘上的所有批处理文件(8)一张3.5英寸双面高密度软盘片的容量为A)360KB B)720KB C)1.44MB D)1.2MB(9)与二进制小数0.1等值的十六进制小数为A)0.1 B)0.2 C)0.4 D)0.8(10)DOS系统的热启动与冷启动的不同之处为热启动时A)不检测键盘、处设接口与内存 B)不提示用户输入日期与时间C)不用装入文件 D)不能从软盘启动(11)为了将磁盘上的文件K1,K2,K3,依次连接在文件K4的后面,应使用命令A)COPY K1+K2+K3 K4 B)COPY K1+K2+K3+K4C)COPY K1+K2+K3+K4 K4 D)COPY K4+K1+K2+K3(12)下列文件名中可以作为批处理文件名的是A)AUTOEXC.C B)AUTOEXECC)ATX.BAT D)AUTO.TXT(13)要打印输出当前盘的根目录下所有文件与子目录清单,应使用命令A)DIR \ PRN B)TYPE \ PRNC)DIR PRN C)TYPE PRN(14)设可执行文件 ABC.EXE 所需要的本该由键盘输入的数据已经按格式存放在文件XYZ 中,并要求执行结果放在文件 XYZ 中输入数据的后面. 下列命令中正确的是A) ABC XYZ B) ABC XYZC) ABC <XYZ(15)设当前盘中某一目录路径为 \A\B\C,当前目录为\A.下列命令中肯定出错的是A)MD \A\C B) CD C) MD \A\B\A D) MD \A\B(16)设 A 盘的目录结构如下:根目录│┌─────┬┴──┬───┬───┬────┐│ │ │ │ │ │ABC D1子目录 DX.C Q.DAT D2子目录A.FOR│ │┌────┬─┴──┬───┐┌───┬───┐│ │ │ │ │ │ │B.PAS D3子目录 Y.BAS A.C A1.C D4子目录XYZ.C│┌────┬────┬────┐│ │ │ │QR.C NA.C A.TXT B.C如果当前盘为 C 盘,A 盘的当前目录为\D2,则下列对 A 盘上文件QR.C 的指定中,合法的是A)\D2\D4\QR.C B)D4\QR.CC)A:D4\QR.C D)A:D2\D4\QR.C(17)下列DOS命令中,有错误的是A)TYPE AAB.FORCON B)TYPE ?AB.FORC)COPY *.C CON D)COPY CON PRN(18)设当前盘为A盘,为了将当前盘当前目录下的文件AB1.TXT连接在C 盘根目录下的文件XYZ.TXT的后面,正确的命令是A)COPY C:\XYZ.TXT+AB1.TXTB)COPY AB1.TXTC:\XYZ.TXTC)TYPE AB1.TXTC:\XYZ.TXTD)AB1.TXT+C:\XYZ.TXTC:\XYZ.TXT(19)下列命令中合法的是A)DISKCOPY A: A: B)DISKCOPY A: C:C)DISKCOPY C: A: D)DISKCOPY C: D:(20)设当前盘中某一目录路径为\A\B\C\D\XU,当前目录为\A.要将根目录下扩展名为.C的所有文件复制到当前目录下,并将扩展名改为.FOR,应使用命令A)COPY \*.C *.FOR B)COPY *.C \A\*.FORC)COPY *.FOR \*.C D)COPY \A\*.C *.FOR(21)下列不正确的转义字符是A)'\\' B)'\" C)'074' D)'\0'(22)若有以下定义:char a; int b;float c; double d;则表达式a*b+d-c值的类型为A) float B) int C) char D) double(23)表示关系x<=y<=z的c语言表达式为A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z)C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z)(24)设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为A) 4 B) 3 C) 2 D) 1(25)设x为int型变量,则执行以下语句后,x的值为x=10; x+=x-=x-x;A) 10 B) 20 C) 40 D) 30(26)下列可作为C语言赋值语句的是A) x=3,y=5 B) a=b=6C) i--; D) y=int(x);(27)设x,y,z,t均为int型变量,则执行以下语句后,t的值为x=y=z=1;t=++x||++y&&++z;A) 不定值 B) 2 C) 1 D) 0(28)设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf("i=%d,f=%f",&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为A) 100765.12 B) i=100,f=765.12C) 100765.12 D) x=100y=765.12(29)设x和y均为int型变量,则执行下的循环后,y值为for(y=1,x=1;y<=50;y++){ if(x=10))break;if (x%2==1){ x+=5; continue;}x-=3;}A) 2 B) 4 C) 6 D) 8(30)给出以下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'};则正确的叙述为A) 数组X和数组Y等价 B) 数组x和数组Y的长度相同C) 数组X的长度大于数组Y的长度 D) 数组X的长度小于数组Y的长度(31)以下叙述中不正确的是A) 在不同的函数中可以使用相同名字的变量B) 函数中的形式参数是局部变量C) 在一个函数内定义的变量只在本函数范围内有效D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(32)假定a和b为int型变量,则执行以下语句后b的值为a=1; b=10;do{ b-=a; a++; }while (b--<0);A) 9 B) -2 C) -1 D) 8(33)设j为int型变量,则下面for循环语句的执行结果是for( j=10;j3;j--){ if(j%3)j--;--j; --j;printf("%d ",j);}A) 6 3 B) 7 4 C) 6 2 D) 7 3(34)设有以下宏定义:#define N 3#define Y(n) ( (N+1)*n)则执行语句:z=2 * (N+Y(5+1));后,z的值为A) 出错 B) 42 C) 48 D)54(35)设P1和P2是指向同一个int型一维数组的指针变量,k为int 型变量,则不能正确执行的语句是A)k=*P1+*P2; B)p2=k;C)P1=P2; D)K=*P1 * (*P2);(36)设有如下定义:int arr[]={6,7,8,9,10};int * ptr;则下列程序段的输出结果为ptr=arr;* (ptr+2)+=2;printf ("%d,%d\n",*ptr,*(ptr+2));A)8,10 B)6,8 C)7,9 D)6,10(37)以下程序的输出结果是main(){ int i,k,a[10],p[3]:K=5;for (i=0;i<10;i++) a[i]=i;for (i=0;i<3;i++) p[i]=a[i*(i+1)];for (i=0;i<3;i++) k+=p[i]*2;printf("%d\n",k);}A) 20 B) 21 C) 22 D)23(38)执行以下程序段后,m的值为int a[2][3]={ {1,2,3},{4,5,6} };int m,*p;p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));A) 15 B) 14 C) 13 D) 12(39)有以下程序段char arr[]="ABCDE";char *ptr;for(ptr=arr;ptr<arr+5;ptr++)printf("%s\n",ptr);输出结果是A) ABCD B) A C) E D)ABCDEB D BCDEC C CDED B DEE A E(40)有以下程序main(){ int x,i;for(i=1;i<=50;i++){ x=i;if(++x%2==0)if(x%3==0)if(x%7==0)printf("%d,i);}}输出结果是A) 28 B) 27 C) 42 D) 41(41)有下列程序#include<stdio.hmain(){ union{ int k;char i[2];} *s,a;s=&a;s-i[0]=0x39; s-i[1]=0x38;printf("%x\n",s-k);}输出结果是A) 3839 B) 3938 C) 380039 D) 390038(42)有以下程序#include <stdio.hmain(){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是A) 2,1 B) 3,2 C) 4,3 D) 2,-1(43)设有如下定义:int (*ptr)*();则以下叙述中正确的是A) ptr是指向一维组数的指针变量B) ptr是指向int型数据的指针变量C) ptr是指向函数的指针,该函数返回一个int型数据D) ptr是一个函数名,该函数的返回值是指向int型数据的指针(44)有以下程序#include <stdio.hstruct stu{ int num;char name[10];int age;};void fun(struct stu *p){ printf("%s\n",(*p).name); }main(){struct stu students[3]={ {9801,"Zhang",20},{9802,"Wang",19},{9803,"Zhao",18} };fun(students+2);}输出结果是A) Zhang B)Zhao C) Wang D) 18(45)设有以下说明和定义:typedef union{ long i; int k[5]; char c; }DATE; struct date{ int cat; DATE cow; double dog; } too;DATE max;则下列语句的执行结果是printf ("%d",sizeof (struct date ) +sizeof(max));A) 26 B) 30 C) 18 D) 8(46)有以下程序main(){ char a[]="programming", b[]="language";char *p1,*p2;int i;p1=a; p2=b;for(i=0;i<7;i++)if(*(p1+i)==*(p2+i)) printf("%c",*(p1+i));}输出结果是A) gm B) rg C) or D) ga(47)有以下程序viod fun (int a,int b,int c){ a=456; b=567; c=678;}main(){ int x=10, y=20,z=30;fun (x,y,z);printf("%d,/%d\n",c,d);}输出结果是A)30,20,10 B)10,20,30C)456,567,678 D)678,567,456(48)有以下程序int fun(int x,int y,int *cp,int *dp){ *cp=x+y; *dp=x-y; }main(){ int a, b, c, d;a=30; b=50;fun(a,b,&c,&d);printf("%d,%d\n", c, d);}输出结果是A)50,30 B)30,J50 C)80,-20 D)80,20(49)有以下程序main(){ int i, j;for(j=10;j<11;j++){ for(i=9;i<j; i++)if (!(j%i))break;if(i=j-1)printf("%d",j);}}输出结果是A) 11 B) 10 C) 9 D) 10 11(50)有以下程序#include "atdio.h"int abc(int u,intv);main (){ int a=24,b=16,c;c=abc(a,b);printf('%d\n",c);}int abc(int u,int v){ int w;while(v){ w=u%v; u=v; v=w }return u;}输出结果是A) 6 B) 7 C) 8 D) 9二、填空题(1)自动批自理文件名为_______.(2)DOS命令分为内部命令与外部命令,COMP命令属于_______命令.(3)设当前为C盘,现要用一条DOS命令在打印机上输出A盘当前目录下所有扩展名为.DAT的文件内容.这一条DOS命令应为__ _ (4)要将当前盘当前目录下的子目录XYZ中所有扩展名为.BAK 的文件名改成扩展名为.FOR,应使用的DOS命令为__ _(5)设DOS外部命令文件所在的路径均已用PATH命令打通.现要将当前盘当前目录下的文件WST.TXT设置为只读属性,应使用的DOS命令为___(6)设x和y均为int型变量,且x=1,y=2,则以下表达式的值为___ 1.0+x/y(7)设i,j,k均为int型变量,则执行完下面的for循环后,k的值为___for(i=0,j=10;i<=j;i++,j--) k=i+j;(8)设有以下定义的语句:int a[3][2]={10,20,30,40,50,60}, (*p)[2];p=a;则 *(*(p+2)+1)值为___(9)以下程序的输出结果是___#include <stdio.hint fun(int x,int y){ static int m=0,i=2;i+=m+1;m=i+x+y;return m}main(){ int j=4,m=1,k;k=fun(j,m); printf("%d,",k);k=fun(j,m); printf("%d\n",k);}(10)函数fun的功能是:使一个字符串按逆序存放,请填空void fun (char str[]){ char m; int i,j;for(i=0,j=strlen(str);i<____;i++,j--){ m=str[i];str[i]=__ _;str[j-1]=m;}printf("%s\n",str);}(11)以下程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串,请填空.#include"ctype.h"#include"stdio.h"main(){ char str[81],*sptr;int i;for(i=0;i<80;i++){ str[i]=getchar();if(str[i]=='\n') break;}str[i]=____;sptr=str;while(*sptr) putchar(*sptr____(13));}(12)以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差.例如:输入的两个字符串分别为abcdef和abceef,则输出为-1.请填空.#includemain(){ char str[100],str2[100],c;int i,s;printf("\n input string 1:\n"); gest(str1);printf("\n input string 2:\n"); gest(str2);i=0;while((strl[i]==str2[i]&&(str1[i]!=____))i++;s=____;printf("%d\n",s);}(13)以下程序的功能是:从键盘上输入一个字符串, 把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来.请填空.#include<stdio.hmain(){ FILE *fp;char str[100]; int i=0;if((fp=fopen("text.txt",__ __))==NULL){ printf("can't open this file.\n");exit(0);}printf("input astring:\n"); gest(str);while (str[i]){ if(str[i]='a'&&str[i]<='z')str[i]=___ _;fputc(str[i],fp);i++;}fclose(fp);fp=fopen("test.txt",____);fgets(str,100,fp);printf("%s\n",str);fclose(fp);}(14) 以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制形式输出,请填空.#include.<stdio.hmain(){charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};int c[64],d,i=0,base;long n;printf("enter a number:\n"); scanf("%ld",&n);printf("enter new base:\n"); scanf("%d",&base);do{ c[i]=____;i++; n=n/base;} while(n!=0);printf("transmite new base:\n");for(--i;i=0;--i){ d=c[i];printf("%c",b____;}}_答案一、选择题(1)B (2)B (3)D (4)D (5)B(6)A (7)B (8)C (9)D (10)A(11)D (12)C (13)A (14)B (15)D(16)C (17)B (18)A (19)A (20)A(21)C (22)D (23)A (24)D (25)B(26)C (27)C (28)B (29)C (30)C(31)D (32)D (33)B (34)C (35)B(36)D (37)B (38)A (39)D (40)D(41)A (42)A (43)C (44)B (45)B(46)D (47)A (48)C (49)B (50)C二、填空题(1)AUTOEXEC.BAT(2)外部(答外部命令不扣分)(3)COPY A:*.DAT PRN(在 COPY 后面与A:*.DAT后面都至少要有一个空格)(4)RENXYZ\*.BAK *.FOR 或RENAME XYZ\*.BAK*.FOR(在REN 或RENAME 后面与XYZ\*.BAK 后面都至少要有一个空格) (5)ATTRIB+R WST.TXT(在ATTRIB 后面与+R后面都至少有一个空格)或ATTRIBWST.TXT+R(在ATTRIB后面与WST.TXT后面都至少要有一个空格)(6)1.0或1(7)10(8)60(9)8,17(10)strlen(str )/2或strlen(str)/2.0或0.5*strlen(str)或j或j-1str[j-1]或*(str+j-1)(11)'\0' 或0++(12) '\0'或0strl[i]-str2[i](13) "w"或"w+"或"wt"或"w+t"或"""wt+"str[i]-32 或str[i]-('a'-'A'或str[i]-'a'+'A'"r"或"r+"或"r+t"或"rt+"(14)n%base[d]。

《C语言程序设计》期末笔试模拟试卷及参考答案

《C语言程序设计》期末笔模拟试卷(本试卷满分60分)院系学号姓名1. 答案均写在答题纸上,写在卷面上无效;2. 答题结束后将试卷及答题纸全部交给监考教师;一、单选题 (1分×16,共16分)1. 下面 (1) 是正确的局部数组声明CA. char a[][5]={“math”,“phy”,“chemi” };B. int b[3][3]={{1,2,3},4,5,6,7,{8,9}};C. float c[sizeof(sin(1))]={1,‘\n’};D. char ch[ ][10]={“Beijing”,“Nanjing”},*p[ ]={ ch[0],ch[1] };2. 如下哪个程序语法、语义都正确,且能获得正确的运行结果(2) A3. 若有声明:enum d{ e,s,w,n}c=s;则表达式“ops”+ c值的类型是 (3) 。

B A. enum d B. char * C. int D. int *4. 下列叙述中除 (4) 之外都是正确的。

BA.引用函数说明中指定的形参名,不必与函数定义中对应的形参名相同。

B.不能用extern定义一个外部变量、数组。

C. 无论在函数外还是在函数内说明引用本程序中定义的函数,都可不写extern关键字。

D.用extern说明引用一个外部数组时,可以不给出数组大小。

5. 下列能正确执行的程序是: (5) A6. 对于二维数组定义: int a[i][j]; (i、j均为常量),且有:0≤m<i,0≤n<j , 则下列除 (6) 外,都是不等价的。

BA. a+m 与 a[0]+mB. a+m 与 *(a+m)C. *(a+m) 与 *a[m]D. *a 与 *a[0]7. 若程序中有声明:“float a,b[3][4];”与引用函数的说明:“int fun(floatk[][3]),int n);”则下列 (7) 都是常量或常量表达式。

C语言程序设计 模拟试卷

C语言程序设计课程模拟试卷一、单项选择题.把合适的选项编号填写在括号内.(每小题3分,共42分)1.在C语言中,每条复合语句的结束标记字符为( )。

A.] B.) C.> D.}2. 在C语言程序中,单行或行尾注释语句使用的标记符为()。

A。

*/ B. /* C. // D. **3。

C语言源程序文件的扩展名为().A。

cpp B. exe C。

obj D。

c4。

控制字符'\n’表示( )。

A. 回车B. 响铃 C。

换行 D。

换页5。

运算符优先级最高的是()。

A。

== B。

+ C. && D。

||6. x<=10的相反表达式为()。

A。

x〉=10 B. x>10C。

x!=10 D. x>07. 每次先进行循环条件的判断,然后再执行循环体的语句为( ).A. for和do B。

for和whileC. while和do D。

switch和break8。

假定对二维数组a[3][4]进行初始化的数据为{{3,5,6},{2,8},{7}},则a[1][1]被初始化为( )。

A。

6 B。

2 C. 8 D. 79。

对于一个二维字符数组a[M][N],存储每个字符串的长度至多为()。

A. MB. NC. M-1D. N-110. 假定p所指对象的值为25,p+1所指对象的值为42,则表达式*p++的值为( )。

A. 25B. 42C. 26 D。

4311。

已知“int a[6][5];”,则元素a[2][4]的地址比该数组的首地址大()。

A. 14个字节 B。

56个字节 C。

28个字节 D. 96个字节12. 在C语言中,用户定义的标识符分为4种作用域,下列选项中不属于这4种作用域的是( )。

A. 全局 B。

语句 C. 文件 D。

局部13. 在一个链表中,每个结点必然存在着一个指向自身结点类型的指针域,用来保存下一个结点的()。

A. 地址B. 值C. 名称D. 类型14. 在C语言中,为只写操作打开一个文本文件的方式为()。

c语言模拟试卷及答案

《C语言程序设计》考试试卷(答案)一、填空题(每小空1分,共10分)1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。

2.一个C程序有且仅有一个main( ) 函数。

3.C语言描述“x和y都大于或等于z”的表达式是x>=z && y>=z。

4.C语言可以用来实现循环的结构化语句是while、do while、for。

5.数组名表示数组在内存的首地址。

6.int a=3,*p=&a;*p+2的值是5。

二、单项选择题(每小题2分,共70分)1._____是C语言合法的标识符。

2.(A)3_sy45 (B)su_m (C)@123 (D)3D643.一个程序的执行是从。

4.(A)本程序的main函数开始,到main函数结束5.(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。

6.(C)本程序的main函数开始,到本程序文件的最后一个函数结束。

7.(D)本程序文件的第一个函数开始,到main函数结束。

8.以下叙述正确的是。

9.(A)在C程序中,main函数必须位于程序的最前面。

10.(B)C程序每行中只能写一条语句。

11.(C)C语言本是没有输入输出语句。

12.(D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。

13.以下叙述不正确的是。

14.(A)逗号运算符的运算级最低。

15.(B)ABC和abc是两个不同的变量。

16.(C)若a和b类型相同,在执行a=b后,b的自身值不变。

17.(D)‘a’和“a”是完全等价的常量。

18.int x=3,y=2;则表达式x+=x*=y+8的值为。

19.(A)28 (B)30 (C)60(D)1720.在c语言中,变量的隐含存储类别是。

21.(A)auto (B)static (C)extern (D)无存储类别22.执行下面两个语句后,输出的结果为_____。

23.char c1=98;24.printf(“%d %c”,c1,c1-32);25.(A)97 66 (B)98 b (C)b 66 (D)98 B26.执行下面语句后的结果为。

C语言模拟试卷及其答案

2011―2012 学年第一学期《C 语言程序设计》模拟试卷(A)一、单项选择题(每题1分,共30分)1.以下选项中叙述正确的是________。

A )C 语言程序总是从第一个定义的函数开执行B )在C 语言程序中,被调用的函数必须在main()函数中声明 C )C 语言程序总是从main()函数开始执行D )C 语言程序中的main()函数必须放在程序的开始部分2.C 语言程序的三种基本结构是顺序结构、选择结构和________结构。

A )循环 B )递归 C )转移 D )嵌套 3以下选项中不属于C 语言的基本数据类型的是________。

A )int B )double C )char D )bool 4.以下选项中正确的C 语言标示符是________。

A)2b B )x_1 C )a@b D)3#h5.设C 语言中,一个int 型数据在内存中占2个字节,则unsigned int 型数据的取值范围为________。

A )0~255B )0~32767C )0~65535D )0~2147483647 6.以下选项中,和语句k=n++;等价的是________。

A )k=n,n=n+1; B )n=n+1,k=n; C )k=++n; D )k=n+1;7.已知:int i=3,j=2;,则执行语句j*=i+2;printf("%d",j);后,输出结果是________。

A )8 B )10 C )12 D )148.已知:int a=2,b=3,c;,执行语句c=(a=2,b=2);后,c 的值是________。

A )2 B )3 C )4 D )5 9.已知:int x,y;float z;,若要给变量x,y,z 输入数据,以下正确的输入语句是________。

A )scanf("%d,%d,%d",x,y,z); B )scanf("%d,%d,%f",&x;&y;&z); C )scanf("%d,%d,%f",&x,&y,&z ); D )scanf("%2d,%2d,%3.2d",x;y;z );10.华氏温度f 和摄氏温度c 的关系是)32(95-=f c 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 / 7 C语言模拟试卷4 一、基础题(30分,每小题3分) 1.已知 int a = 5, b = 8; 求表达式 ++a / 2 + b-- 的值。 2.已知 in a[5] = { 2, 3, 4, 5, 6 }; int *p = a+2; 求表达式 *p*a[3] 的值。 3.写出将实数 x 的小数点后第三位四舍五入的表达式。 4.已知有职工结构体数组 struct { int num; char name[20]; } per[100]; 请使用scanf函数写出:输入下标为i的职工的num和name的语句。 5.请写出表达式:将整数n(0≤n≤9)转化为ASCII字符。 6.请写出逻辑表达式:x大于10与y不大于10至少有一个成立。 7.写出表达式 (0x1234 & 0xFF) << 8 的16进制结果。 8.请计算 for ( i = 3; i <= 99; i+=5 ) 的循环次数是多少? 9.请说明表达式 (x%2) && !(y%3==0) 的逻辑含义。 10.请简要描述循环体中break 语句 和 continue 语句的主要区别。

二、改错程序(12分,每错误点3分)

以下程序求 e = 1 + 1/1! + 1/2! + … + 1/n! + … 的解,本程序有

4个错误,请仔细阅读程序,指出所在的行号,并写出该行正确的程序内容。 (1) #include (2) main() (3) { (4) double e, a; (5) int n; (6) e = 0.0; (7) a = 1.0; (8) i = 1; (9) do { (10) a /= i; (11) e += a; (12) i = i + 1; (13) } while ( a<=1e-12 ); (14) printf( "0.12f\n", e ); (15) } 2 / 7

三、阅读程序(24分,每小题6分)

仔细阅读下列程序,写出各程序的运行结果。

(1)程序1 #include main() { int n, i, j; scanf( "%d", &n ); for ( i = 0; i < n; i++ ) { for ( j = 0; j < n-1-i; j++ ) printf( " " ); for ( j = 0; j < 2*i+1; j++ ) printf( "*" ); printf( "\n" ); } } 运行时输入 3,输出为? (2)、程序2 #include int dline( int func, int x, int y ) { static int lastx; static int lasty; if ( func ) printf("Line(%d,%d)to(%d,%d)\n",lastx,lasty,x,y); lastx = x; lasty = y; } main() { dline( 0, 10, 20 ); dline( 1, 20, 30 ); dline( 2, 30, 40 ); } 输出 ? 3 / 7

(3)、程序3 #include int count, position, data; void search( int *p, int n, int st ) { if ( *p == data ) { count ++; position = st; } if ( n > 1 ) search( p+1, n-1, st+1 ); } main() { int a[5] = { 10, 30, 50, 30, 20 }; count = 0; data = 30; search( a, 5, 1 ); printf( "count=%d,position=%d\n", count, position ); } 输出 ? (4)、程序4 #include struct fs /*分数*/ { int fenzi; /*分子*/ int fenmu; /*分母*/ }; void fsset( struct fs *r, int value ) { r->fenzi = value; r->fenmu = 1; } void fsprint( struct fs *r ) { /* print a number */ 4 / 7

if ( r->fenmu!=0 && (r->fenzi % r->fenmu)==0 ) printf( "%d", r->fenzi/r->fenmu ); else printf( "%d/%d", r->fenzi, r->fenmu ); } void fsexp(struct fs *r,struct fs *a,struct fs *b,char op) { /* print an express */ fsprint( a ); printf( "%c", op ); fsprint( b ); printf( "=" ); fsprint( r ); printf( "\n" ); } void fsadd( struct fs *r, struct fs *a, struct fs *b ) { r->fenzi = a->fenzi * b->fenmu + a->fenmu*b->fenzi; r->fenmu = a->fenmu * b->fenmu; fsexp( r, a, b, '+' ); } void fsmul( struct fs *r, struct fs *a, struct fs *b ) { r->fenzi = a->fenzi * b->fenzi; r->fenmu = a->fenmu * b->fenmu; fsexp( r, a, b, '*' ); } void fsdiv( struct fs *r, struct fs *a, struct fs *b ) { r->fenzi = a->fenzi * b->fenmu; r->fenmu = a->fenmu * b->fenzi; fsexp( r, a, b, '/' ); } main() { struct fs sa,sb,sc,sd; struct fs r1,r2,r3; fsset( &sa, 3 ); 5 / 7

fsset( &sb, 3 ); fsset( &sc, 7 ); fsset( &sd, 7 ); fsdiv( &r1, &sa, &sc ); fsadd( &r2, &sb, &r1 ); fsmul( &r3, &r2, &sd ); } 输出 ?

四、程序填空(18分,每填空3分) (1)、以下程序为简易密码变换,输入一行字符,将其中的小写字母用该字母之后的第4个字母进行替换,如将’a’替换为’e’,若替换的字母超过’z’则循环到’a’,如’w’替换为’a’。 #include void trans( char *dest, char *src ) { /*将字符串src变换为dest*/ char ch; while ( ch= (1) ) { if ( ch>='a' && ch<='z' ) { ch += 4; if ( ch > 'z' ) ch = (2) ; } *dest = ch; dest ++; } *dest = (3) ; } main() { char buf[100], inb[100]; gets( inb ); /* 输入 abc,xyz */ trans( buf, inb ); puts( buf ); /* 输出 efg,bcd */ } 6 / 7

(2)、以下程序输入10行字符,按字符串顺序从低到高排序,并写入文件。 #include #define N 10 int bigthan( char *str1, char *str2 ) { /*若字符串str1比str2大,则返回1*/ for ( ; *str1 || *str2; (1) ) { if ( *str1 > *str2 ) return 1; if ( *str1 < *str2 ) return 0; } return 0; } main() { char ls[N][100]; char *ps[N], *t; FILE *ff; int i, j; for ( i = 0; i < N; i++ ) { gets( ls[i] ); ps[i] = ls[i]; } for ( i = 0; i < N-1; i++ ) for ( j = 0; j < N-i-1; j++ ) if ( bigthan( (2) ) ) { /*气泡排序法*/ t = ps[j]; ps[j] = ps[j+1]; ps[j+1] = t; } ff = fopen( "C:\\tst42.TXT", (3) ); for ( i = 0; i < N; i++ ) { fprintf( ff, "%s\n", ps[i] );

相关文档
最新文档