2023年计算机二级C语言五套模拟卷及答案_第1页
2023年计算机二级C语言五套模拟卷及答案_第2页
2023年计算机二级C语言五套模拟卷及答案_第3页
2023年计算机二级C语言五套模拟卷及答案_第4页
2023年计算机二级C语言五套模拟卷及答案_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

计算机二级C语言五套模仿卷及答案模仿试题一一、 选用题(本大题30分,每题2分)1.下列说法对旳是。E) main函数必要放在C程序开头F) main函数必要放在C程序最终G) main函数可以放在C程序中间某些,但在执行C程序时是从程序开头执行H) main函数可以放在C程序中间某些,但在执行C程序时是从main函数开始2.在下面几组数据类型中,全为最常用基本数据类型是哪一组:。A)整型实型字符型B)整型数组指针C)数组构造体共用体D)指针逻辑型空类型3.若有阐明语句:charc=‘\64’;则变量C包括:。A)1个字符B)2个字符C)3个字符D)阐明不合法,C值不确定4.设有如下定义和执行语句,其输出成果为:。inta=3,b=3;a=--b+1;printf(“%d%d”,a,b);A)32B)42C)22D)235.C语言中,运算对象必要是整型数运算符是。 A)% B)\ C)%和\ D)**6.能对旳体现x取值范围在[0,100]和[-10,-5]内体现式是。A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)7.程序段如下intk=0;while(k++<=2);printf("last=%d\n",k);则执行成果是last=。A)2B)3C)4D)无成果8.下面有关for循环对旳描述是。A)for循环只能用于循环次数已经确定状况B)for循环是先执行循环体语句,后判断体现式C)在for循环中,不能用break语句跳出循环体D)for循环循环体语句中,可以包括多条语句,但必要用花括号括起来9.若二维数组a有m列,则a[I][j]元素前数组元素个数为:。A)j*m+iB)i*m+jC)i*m+j-113D)i*m+j+110.C语言中变量指针指是:。A)变量类型B)变量值C)变量值D)变量地址11.设有两字符串“Beijing”、“China”分别存储在字符数组str1[10],str2[10]中,下面语句中能把“China”连接到“Beijing”之后为:。A)strcpy(str1,str2);B)strcpy(str1,“China”);C)strcat(str1,“China”)D)strcat(“Beijing”,str2);12.如下程序运行成果是:。main(){inta=2,i;for(i=0;i<3;i++)printf(“%4d”,f(a));}f(inta){intb=0,c=3;b++;c++;return(a+b+c);}A)71013B)777C)7911D)78913.在C语言程序中,若未在函数定义时阐明函数类型,则函数默认类型为:。A)voidB)doubleC)intD)char14.在阐明一种构造体变量时系统分派给它存储空间是。E) 该构造体中第一种组员所需存储空间F) 该构造体中最终一种组员所需存储空间G) 该构造体中占用最大存储空间组员所需存储空间H) 该构造体中所有组员所需存储空间总和15.使用fseek函数可以实现操作是。E) 变化文献位置指针目前位置F) 文献次序读写G) 文献随机读写H) 以上都不对二、判断题(本大题10分,每题1分)1、C程序可以由若干个源文献构成,因而最小功能单位是源文献,最小编译单位是函数。()2、C程序有三种构造化程序设计措施,分别次序构造、选用构造和循环构造。()3、在if语句中,if子句与else子句都可以单独使用,构成了if语句两种缺省形式。()4、for语句作为循环控制语句时,其括号内各个体现式及其后分号都可缺省。()5、C程序中函数不可以嵌套定义但可以嵌套调用。()6、字符串可以用来给数组赋值,在C程序执行语句中可以直接用字符串给数组名赋值。()7、数组名也可作为函数参数使用,此时数组名代表数组起始地址。()8、在函数内复合语句中定义变量在本函数范围内有效。()9、申明一种构造体类型一般形式为struct构造体名{组员表列};。()10、ANCIC规定了原则输入输出函数库,用fseek()函数来实现打开文献。()三、程序填空题(本大题12分,每题2分)1.下面程序可求出1~1000自然数中所有完数(因子和等于该数自身数)请填空。main(){intm,n,s;for(m=2;m<1000;m++){____(1)____;for(n=1;n<=m/2;n++)if(__(2)___)s+=n;if(__(3)___)printf(“%d\n”,m);}}2..用起泡法对十个数由大到小排序。main(){inta[11],i,j,t;printf(“input10numbers:\n”);for(i=1;i<11;i++)scanf(“%d”,&a[i]);printf(“\n”);for(j=1;j<=9;j++)for(i=1;_(1)__;i++)if(__(2)___){t=a[i];a[i]=a[i+1];__(3)__;}printf(“thesortednumbers:\n”);for(i=1;i<11;i++)printf(“%d”,a[i]);}四、写出下面程序执行成果(本大题24分,每题4分)1.#include<stdio.h>main(){charc=‘A’+‘10’-‘5’;printf(“c=%c\n”,c);}2.#include<stdio.h>main(){inta,b,c;a=1;b=2;c=3;if(a>b)if(a>c)printf(“%d\n”,a);elseprintf(“%d\n”,b);printf(“over\n”);}3.main(){chara[6][6],i,j;for(i=0;i<6;i++)for(j=0;j<6;j++){if(i<j)a[i][j]=‘#’;elseif(i==j)a[i][j]=‘’;elsea[i][j]=‘*’;}for(i=0;i<6;i++){for(j=0;j<6;j++)printf(“%c”,a[i][j]);printf(“\n”);}}4.main(){inti=2,x=5,j=7;fun(j,6);printf(“i=%d;j=%d;x=%d\n”,i,j,x);}printf(“i=%d;j=%d;x=%d\n”,i,j,x);5.#include<stdio.h>main(){inti,j;int﹡p,﹡q;i=2;j=10;p=&i;q=&j;﹡p=10;﹡q=2;printf(〞i=%d,j=%d\n〞,i,j);}6.structstru{intx;charc;};main(){structstrua={10,’x’},*p=&a;func(p);printf(“%d,%c”,a.x,a.c);}func(structstru*b){b->x=20;b->c=’y’;}五、编程题(本大题24分,第一题7分,第二题8分,第三题9分)1.把输入整数(最多不超过5位)按输入次序反方向输出,例如,输入数是12345,规定输出成果是54321,编程实现此功能。2.编一程序,从键盘输入10个整数并保留到数组,规定找出最小数和它下标,然后把它和数组中最前面元素对换位置。3.编写一种函数计算一种字符串长度,输入输出在主函数内完毕。(使用指针)模仿试题二一、选用题(本大题30分,每题2分)1.C语言中不能用来体现整常数进制是。 A)十进制 B)十六进制 C)八进制 D)二进制2.C语言规定标识符由等字符构成。A)字母数字下划线B)中划线字母数字C)字母数字逗号D)字母下划线中划线3.若有如下定义:inta=2,b=3;floatx=3.5,y=2.5;则体现式:(float)(a+b)/2+(int)x%(int)y值是。A)2.500000B)3.500000C)4.500000D)5.0000004.如下体现式:2+’a’+i*f,其中i为整型变量,f为float型变量,则体现式最终数据类型为。A)intB)floatC)charD)double5.有如下语句:printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”);执行语句后最终成果为。A)COMPUTER,CMP.B)COMPUTER,CMP.C)COMPU,CMP.D)COMPU,CMP.6.如下if语句中语法错误是。A)if(a>b)printf(“%f”,a);B)if(a>b)printf(“%f”,a);elseprintf(“%f”,b);C)if(a>b)printf(“%f”,a)D)if(a>b)printf(“%f”,b);elseprintf(“%f”,b);elseprintf(“%f”,a);7.能体现整数x符合下面两个条件语句是。(1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除.A)(x%4==0&&x%100!=0)||x%400==0B)(x%4==0||x%100!=0)&&x%400==0C)(x%4==0&&x%400!=0)||x%100==0D)(x%100==0||x%4!=0)&&x%400==08.循环语句中for语句,其一般形式如下:for(体现式1;体现式2;体现式3)语句其中体现循环条件是。A)体现式1B)体现式2C)体现式3D)语句9.以数组作为函数参数时传递数组首地址,那么实参数组与形参数组之间数据传递方式为。A)地址传递B)单向值传递C)双向值传递D)随机传递10.将字符串str2连接到字符串str1中应使用。A)strcpy(str1,str2)B)strcat(str1,str2)C)strcmp(str1,str2)D)strcat(str2,str1)11.若有如下定义:inta[10],*p=a;则*(p+3)体现是。A)元素a[3]地址B)元素a[3]值C)元素a[4]地址D)元素a[4]值12.若有如下语句:int*p1,*p2;则其中int所指是。A)p1类型B)*p1和*p2类型C)p2类型D)p1和p2所能指向变量类型13.若有如下阐明:inta[10]={1,2,3,4,5,6,7,8,9,10};charb=’a’,d,e;则数值为4体现式是。A)a[4]B)a[d-b]C)a[‘d’-b]D)a[e-b]14.有如下程序段,在TurboC环境下运行成果为。main(){inti=2,p,k=1;intf(inta,intb)p=f(i,++k);{intc;printf(“I=%d,p=%d”,k,p);if(a>b)c=1;}elseif(a==b)c=0;elsec=-1;return(c);}A)1,0B)2,0C)2,-1D)1,115.若fp是指向某文献指针,且已读到此文献末尾,则库函数feof(fp)返回值是。A)EOFB)0C)非零值D)NULL二、判断题(本大题10分,每题1分)1.在每个C语言程序中都必要并且只能有一种main函数。()2.在C语言中,整型数据与字符型数据在任何状况下都可以通用。()3.在C语言程序中,AHP和ahp分别代表两个不一样标识符。()4.在if语句中,不可以没有else子句。()5.C语言规定,简朴变量做实参时,与其对应形参之间是单向值传递。()6.for语句作为循环控制语句时,括号内分号是用来分开体现式,因而要根据需要加分号。()7.数组名也可作为函数参数使用,此时是地址传递。()8.C程序有三种构造化程序设计措施,分别嵌套构造、选用构造和循环构造。()9.数组在定义时没有必要指定数组长度,其长度可以在程序中根据元素个数再决定。()10.在定义指针型变量时指定基类型为该指针变量所能指向变量类型。()三、程序填空题(本大题12分,每题2分)1.输入3个实数a,b,c规定按从大到小次序输出三数.main(){floata,b,c,t;scanf(“%f,%f,%f”,&a,&b,&c);if(a<b){t=a;(1);b=t;}if((2)){t=a;a=c;c=t;}if(b<c){(3)b=c;c=t;}printf(“%f,%f,%f”,a,b,c);}2.打印如下杨辉三角形.(规定打印出10行)main(){inta[10][10],i,j;1for(i=0;i<10;i++)11{(4)(5)}121for(i=2;i<10;i++)-1331for(j=1;j<i;j++)14641a[i][j]=(6);………for(i=0;i<10;i++){for(j=1;j<=i;j++)printf(“%5d”,a[i][j]);printf(“\n”);}}四、写出下面程序执行成果(本大题24分,每题4分)1.main(){inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},b[4][3];inti,j;for(i=0;i<3;i++)for(j=0;j<4;j++)b[j][i]=a[i][j];for(i=0;i<4;i++){for(j=0;j<3;j++)printf(“%5d”,b[i][j]);printf(“\n”);}}2.main(){inta[21],i,j,n=0;for(i=2;i<20;i++)a[i]=i;for(i=2;i<10;i++){if(a[i]==0)continue;for(j=i+1;j<=20;j++)if(a[j]%a[i]==0)a[j]=0;}for(i=2;i<=20;i++)if(a[i]!=0){printf(“%4d”,a[i]);n=n+1;}if(n%4==0)printf(“\n”);}3.floatfac(intn){floatf;if(n<0){printf(“n<0,dataerror!”);f=-1;elseif(n==0||n==1)f=1;elsef=fac(n-1)*n;return(f);}main(){intn;floaty;printf(“inputaintegernumber:”);scanf(“%d”,&n);y=fac(n);printf(“%d!=%5.0f”,n,y);}假如在运行程序时输入5,写出程序运行状况及最终成果:。4.main(){inti=10,j=0;do{j=j+i;i--;while(i>2);printf("%d\n",j);}5.#include<stdio.h>main(){int﹡p;p=&i;﹡p=2;p++;﹡p=5;printf(〞%d,〞,﹡p);p﹣﹣;printf(〞%d\n〞,﹡p);}}6.#include<stdio.h>voidf(intc){inta=0;staticintb=0;a++;b++;printf("%d:a=%d,b=%d\n",c,a,b);}voidmain(void){inti;for(i=1;i<=3;i++)f(i);}五、编程题(本大题24分,第一题7分,第二题8分,第三题9分)1. 已知三角形三边长,试编程求三角形面积.规定:三边长从键盘输入,要考虑数据输入与否对旳,能否构成三角形等状况.假设三边分别为:a,b,c,s=1/2(a+b+c),area=s(s-a)(s-b)(s-c)2.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,……试编程求数列前20项和.3.输入10个学生成绩,分别用函数实现:(1)求平均成绩;(2)按分数高下进行排序并输出。模仿试题三一、选用题(本大题30分,每题2分)1.下列有关C程序说法中,对旳是:。A) 一种C程序中只能有一种主函数且位置任意;B) 一种C程序中可有多种主函数且位置任意;C) 一种C程序中只能有一种主函数且位置固定;D) 一种C程序中可以没有主函数。2.如下论述中不对旳是:。A)在C程序运算符中,逗号运算符优先级最低;B)C程序中,AHP和ahp代表两个不一样变量;C)C程序中,整数和实数在内存中存储形式相似;D)在C程序中,%是只能用于整数运算运算符.3.已知ch是字符型变量,下面不对旳赋值语句是:。A)ch=‘\0’B)ch=‘a+b’C)ch=‘7’+‘9’D)ch=7+94.设有如下定义intx=10,y=5,z;则语句printf("%d\n",z=(x+=y,x/y));输出成果是。A)1B)0C)4D)35.设有如下定义:charch=’z’,则执行下面语句后变量ch是值为:。ch=(‘A’<=ch&&ch<=‘Z’)?(ch+32):chA)AB)aC)ZD)z6.若x和y都为float型变量,且x=3.6,y=5.8执行下列语句后输出成果为:。printf(“%f”,(x,y));A)3.600000B)5.800000C)3.600000,5.800000D)输出符号不够,输出不对旳值7.设有两字符串“Beijing”、“China”分别存储在字符数组str1[10],str2[10]中,下面语句中能把“China”连接到“Beijing”之后为:。A)strcpy(str1,str2);B)strcpy(str1,“China”);C)strcat(str1,“China”)D)strcat(“Beijing”,str2);8.如下对一维整型数组a对旳阐明是。A)inta(10);B)intn=10,a[n];C)intn;scanf(“%d”,&n);inta[n];D)#defineSIZE10inta[SIZE];9.设有如下程序段,则其执行成果为:。staticinta[]={1,2,3,4},*p;inti;p=a;(p+3)+=2;printf(“%d”,*(p+3));A)0B)6C)a[3]地址D)不对旳值10.若I为整型变量,则下列程序段运行成果为。I=322;if(I%2==0)printf(“#####”)elseprintf(“*****”);A)#####B)#####*****C)*****D)有语法错误,无法输出成果11.已知intx=30,y=50,z=80;如下语句执行后变量x、y、z值分别为:。if(x>y||x<z&&y>z)z=x;x=y;y=z;A)x=50,y=80,z=80B)x=50,y=30,z=30C)x=30,y=50,z=80D)x=80,y=30,z=5012.下面程序段运行成果是:。x=y=0;while(x<15)y++,x+=++y;printf(“%d,%d”,y,x);A)20,7B)6,12C)20,8D)8,2013.若有语句int*point,a=45;point=&a;下面均代表同一变量地址一组选项是:。A)&apoint*&aB)&*a&a*pointC)point&point&aD)&a,&*pointpoint14.如下程序运行成果是:。main(){inta=2,i;for(i=0;i<3;i++)printf(“%4d”,f(a));}f(inta){intb=0;staticintc=3b++;c++;return(a+b+c);}A)71013B)777C)7911D)78915.若有如下定义:inta[3][3]={1,2,3,4,5,6,7,8,9},i;则下列语句输出成果是:。for(i=0;i<=2;i++)printf(“%d”,a[i][2-i]);A)357B)369C)159D)147二、判断题(本大题10分,每题1分)1.C语言自身没有输入输出语句,输入输出操作都是通过调用库函数来实现。()2.在C语言中,int、char和short三种类型数据在内存中所占用字节数都是由顾客自己定义。()3.在C程序中一行内可以写几种语句,一种语句可以分写在多行上。因而,并不是每一条C语句都必要有一种分号。()4.在C语言if语句中,用作条件判断体现式只能是关系和逻辑体现式。()5.在C语言中break和continue都是循环中途退出语句,其中break语句用来跳出一层循环构造;continue语句用来结束一次循环。()6.C语言中while和do-while循环重要区别是while语句循环体至少会被执行一次,而do-while语句循环体则也许一次也不执行。()7.数组首地址不仅能通过数组中第一种元素地址体现,也可以通过数组名来体现。()8.在C语言中,只有在两个字符串所包括字符个数相似时,才能比较大小。如字符串“That”与“The”就不能进行大小比较。()9.函数返回值类型是由函数类型和return语句中体现式类型共同决定,当这两类型不一致时最终起决定作用是return中体现式类型。()10.定义指针变量时指定类型称为基类型,基类型是指针变量所指向变量类型,因而指针变量被定义之后都只能指向某一类型变量。()三、程序填空题(本大题12分,每题2分)1.输入一种字符,假如是大写字母,则把其变成小写字母;假如是小写字母,则变成大写字母;其他字符不变。请填空:main(){charch;scanf(“%c”,&ch);if((1))ch=ch+32;elseif(ch>’a’&&ch<‘z’)((2));printf(”%c\n”,ch);}2.如下程序是求矩阵a,b和,成果存入矩阵c中并按矩阵形式输出。请填空:main(){inta[3][4]={{7,5,-2,3},{1,0,-3,4},{6,8,0,2}};intb[3][4]={{5,-1,7,6},{-2,0,1,4},{2,0,8,6}};inti,j,c[3][4];for(i=0;i<3;i++)for(j=0;j<4;j++)c[i][j]=___(3)____;for(i=0;i<3;i++){for(j=0;j<4;j++)printf(“%3d”,c[i][j]);____(4)___;}}3.如下程序使用递归法求n!,请填空:floatfac(intn){floatf;if(n<0){printf(“n<0”dataerror);f=-1;}elseif(n==0||n==1)f=1;elsef=(5);return(f);}main(){intn;floaty;printf(“inputaintegernumber”);scanf(“%d”,&n);y=(6);printf(“%d!=%15.0f”,n,y);}四、写出下面程序执行成果(本大题24分,每题4分)1.main(){floata=3.14,b=3.14159;printf(“%f,%5.3f\n”,a,b);}2.main(){chara[5][5],i,j;for(i=0;i<5;i++)for(j=0;j<5;j++)if(i==0||i+j==4)a[i][j]='*';elsea[i][j]='';for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%c",a[i][j]);printf("\n");}}3.main(){intx,i;for(i=1,x=1;i<=50;i++){if(x>=10)break;if(x%2==1){x+=5;continue;}x-=3;}printf(“%d\n”,i);}4.func(intx,inty){intz;z=a+b;return(z);}main(){inta=6,b=7,c=8,r;r=func((a--,b++,a+b),c--)printf(“%d”,r);}5.#include<STDIO.H>voidincrement(void);voidmain(void){increment();increment();}voidincrement(void){staticintx=8;x++;printf("x=%d\n",x);}6.#include<stdio.h>voidmain(void){staticchara[]="ABCDEFGH",b[]="abCDefGh";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=7;k++)if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));printf("\n");}五.编程题(共30分)1.有一函数,其函数关系如下,试编程求对应于每一自变量函数值。x2(x<0)y=-0.5x+10(0x<10)x-(x10)2.若有如下公式:+++。。。。。。。+ 试根据上述公式编程计算近似值(精确到10-6)。3.编一程序,首先将一种包括10个数数组按照升序排列,然后将从一指定位置m开始n个数按照逆序重新排列,并将新生成互相组输出。规定使用指针控制措施实现上述功能。模仿试题四一、选用题(本大题30分,每题2分)1.在C语言中,反斜杠符是。 A)\n B)\t C)\v D)\\2.体现式18/4*sqrt(4.0)/8值数据类型为。A)intB)floatC)doubleD)不确定3.设整型变量a值为9,则下列体现式中使b值不为4体现式。A)b=a/2B)b=a%2C)b=8-(3,a-5)D)b=a>5?4:24.已知变量C1为字符型变量,下面不对旳赋值语句是:。A)C1=‘abc’B)C1=‘\0’C)C1=‘7’+‘9’D)C1=7+95.如下程序输出成果是:。(注:▂体现空格)main(){printf(“\n*s1=%8s*”,“china”);printf(“\n*s2=%-5s*”,“chi”);}A)*s1=china▂▂▂*B)*s1=china▂▂▂**s2=chi**s2=chi▂▂*C)*s1=▂▂▂china*D)*s1=▂▂▂china**s2=▂▂chi**s2=chi▂▂*6.设a、b和c是int型变量,且a=2,b=4,c=6,则下面体现式中值为0是:。A)‘a’+‘b’B)a<=bC)a||b+c&&b-cD)!((a<b)&&!c||1)7.已知intx=10,y=20,z=30;如下语句执行后变量x、y、z值分别为:。if(x>y||x<z&&y>z){z=x;x=y;y=z;}A)x=10,y=20,z=30B)x=20,y=30,z=30C)x=20,y=30,z=10D)x=20,y=30,z=208.下列字符串赋值语句中,不能对旳把字符串Cprogram赋给数组语句是:。A)chara1[]={‘C’,‘’,‘p’,‘r’,‘o’,‘g’,‘r’,‘a’,‘m’}B)chara2[10];strcpy(a2,“Cprogram”);C)chara3[10];a3=“Cprogram”;D)chara4[10]={“Cprogram”}9.用scanf函数输入一种字符串到数组str中,下面对旳语句是:。A)scanf(“%s”,&str);B)scanf(“%c”,&str[10]);C)scanf(“%s”,str);D)scanf(“%s”,str[10]);10.C语言规定,C程序各函数之间。A)容许嵌套调用,但不容许嵌套定义;B)不容许嵌套调用,但容许嵌套定义;C)不容许嵌套调用,也不容许嵌套定义;D)容许嵌套调用,也容许嵌套定义;。11.若有如下定义和语句:chars[12]=“a_book!”;printf(“%d”,strlen(s));则输出成果是:。A)12B)10C)7D)612.下面程序运行成果是:。#include<stdio.h>main(){inty=10;do{y--;}while(--y);printf(“%d\n”,y--);}A)-1B)1C)8D)013.下面函数调用语句中实参个数为:。func((exp1,exp2),(exp3,exp4,exp5))A)1B)2C)4D)514.有如下语句inta=10,b=20,*p1,*p2;p1=&a;p2=&b;如图1所示;若实现如图2所示存储构造,可选用赋值语句是:。p1p2p1p2abab10201020图1图2A)*p1=*p2B)p1=p2C)p1=*p2D)*p1=p215.如下对构造体类型变量定义中不对旳是。B) #defineSTUDENTstructstudentB)structstudentSTUDENT{intnum;{intnum;floatage;floatage;}std1;}std1;C)structD)struct{intnum;{intnum;floatage;floatage;}student;}std1;structstudentstd1;二、判断题(本大题10分,每题1分)-1.在每个C文献中都必要并且只能有一种main函数。()2.在C语言中,整型数据与实型数据在任何状况下都可以通用。()3.在C语言程序中,happy是对旳标识符。()4.在if语句中,if子句与else子句都可以单独使用,构成了if语句两种缺省形式。()5.C语言规定,简朴变量做实参时,与其对应形参之间是双向值传递。()6.数组在定义时规定指定数组类型,数组名及数组长度,其中体现数组长度体现式可以是任意类型常量体现式。()7.在发生函数调用时,主~被调函数中参数可以是简朴变量,也可以是数组名,当采用数组名作为参数时其数据传递方式为单向值传递。()8.C语言一种重要特点是可以直接处理物理地址,其指针类型数据就是用来存储变量地址。()9.字符串是C语言中一种基本数据类型,字符串总是以‘\n’作为结束标志。()10.C程序三种构造化程序设计措施分别次序构造、选用构造和循环构造,由这三种构造构成程序可以处理任何复杂问题。()三、程序填空题(本大题12分,每题2分)1.下面程序功能是运用函数调用求两整数最大公约数和最小公倍数,请填空。main(){inta,b,c,d;scanf(“%d,%d”,&a,&b);c=gongyue(a,b);(1);printf(“gongyue=%d,gongbei=%d\n”,c,d);}gongyue(intnum1,intnum2){inttemp,x,y;if(__(2)__){temp=num1;num1=num2;num2=temp;}x=num1;y=num2;while(__(3)_____){temp=x%y;x=y;y=temp;}return(y);}2.下面程序中数组a波及10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b。请填空。main(){inta[10],b[10],I;for(I=0;I<10;I++)scanf(“%d”,&a[I]);for(I=1;(4);I++)b[I]=(5);for(I=1;I<10;I++){printf(“%3d”,b[I]);if((6))printf(“\n”);}}四、写出下面程序执行成果(本大题24分,每题4分)1.main(){inti;for(i=1;i<=5;i++)switch(i%5){case0:printf(“*”);break;case1:printf(“#”);break;default:printf(“\n”);case2:printf(“&”);}}2.main(){chara[5][5],i,j;for(i=0;i<5;i++)for(j=0;j<5;j++)if(i==0||i==j)a[i][j]='*';elsea[i][j]='';for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%c",a[i][j]);printf("\n");}}3.main(){inti=5;printf(“%d\n”,sub(i));}sub(intn){inta;if(n==1)a=1;elsea=n+sub(n-1);return(a);}4.intf(intx,inty){return((y-x)*x);}main(){inta=3,b=4,c=5,d;d=f(f(3,4),f(3,5));printf("%d\n",d);}5.main(){inta=2,b=3,c;c=a;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;printf(“%d\n”,c);}6.#include<stdio.h>main(){inta[]={1,2,3,4,5,6},﹡p;for(p=&a[5];p>=a;p﹣﹣)printf(〞%d〞,﹡p);printf(〞\n〞);}五、编程题(共27分)1.编一程序,对于给定一种百分制成绩,输出对应五分制成绩。设:90分以上为‘A’;80~89分为‘B’;70~79分为‘C’;60~69分为‘D’;60分如下为‘E’。2.有一种5*5二维数组,试编程求周围元素及对角线元素之和,并输出该数组中值最小元素。3.编写一种程序,用12个月份英文名称初始化一种字符指针数组,当键盘输入整数为1到12时,显示对应月份名,键入其他整数时显示错误信息。模仿试题五一、选用题(本大题30分,每题2分)1.下列说法对旳是。E) 在执行C程序时不是从mian函数开始F) C程序书写格式严格限制,一行内必要写一种语句G) C程序书写格式自由,一种语句可以分写在多行上H) C程序书写格式严格限制,一行内必要写一种语句,并要有行号2.设有如下定义,则能使值为3体现式是:。intk=7,x=12;A)x%=(k%=5)B)x%=(k-k%5)C)x%=kD)(x%=k)-(k%=5)3.如下选项中是C语言数据类型是:。A)复数型B)逻辑型C)双精度型D)集合型4.下面能对旳体现变量a在区间[0,5]或(6,10)内体现式为:。A)0<=a||a<=5||6<a||a<10B)0<=a&&a<=5||6<a&&a<10C)(0<=a||a<=5)&&(6<a||a<10)D)0<=a&&a<=5&&6<a&&a<105.已知字母AASCII码为十进制65,下面程序段运行成果为:。charch1,ch2;ch1=‘A’+5-3;ch2=‘A’+6-3;printf(“%d,%c\n”,ch1,ch2);A)67,DB)B,CC)C,DD)不确定值6.根据定义和数据输入方式,输入语句对旳形式为:。已经有定义:floata1,a2;数据输入方式:4.5233.52A)scanf(“%f%f”,&a1,&a2);B)scanf(“%f,%f”,a1,a2);C)scanf(“%4.3f,%3.2f”,&a1,&a2);D)scanf(“%4.3f%3.2f”,a1,a2);7.在C语言中,多分支选用构造语句为:switch(c){case常量体现式1:语句1;……case常量体现式n-1:语句n-1;default语句n;}其中括号内体现式c类型:。A)可以是任意类型B)只能为整型C)可以是整型或字符型D)可觉得整型或实型8.如下能对二维数组a进行对旳阐明和初始化语句是:。A)inta()(3)={(1,0,1),(2,4,5)}B)inta[2][]={{3,2,1},{5,6,7}}B)inta[][3]={{3,2,1},{5,6,7}}D)inta(2)()={(1,0,1),(2,4,5)}9.下面有关形参阐明语句中对旳是:。A)形参在被调函数中定义,当被调定义完后形参就将占用内存空间,并将获得值。B)形参只有在发生函数调用时才会被分派内存空间,才会获得值,且调用结束后又会消失。C)形参将会在程序编译阶段获得内存空间和值,且在整个程序运行过程中都将保持。D)以上说法都不对旳。10.如下程序输出成果是:。main(){intI=012,j=12,k=0x12;printf(“%d,%d,%d\n”,I,j,k);A)10,12,18B)12,12,12C)10,12,12D)12,12,1811.如下论述中不对旳是。A)C语言中文本文献以ASCII码形式存储数据B)C语言中对二进制位访问速度比文本文献快C)C语言中,随机读写方式不使用于文本文献D)C语言中,次序读写方式不使用于二进制文献12.如下程序运行成果是:。main(){intn=4;while(n--)printf(“%2d”,--n);}A)20B)31C)321D)21013.如下程序功能是:按次序读入10名学生4门课程成绩,计算出每位学生平均分并输出,程序如下:main(){intn,k;floatscore,sum,ave;sum=0.0;for(n=1;n<=10;n++){for(k=1;k<=4;k++){scanf("%f",&score);sum+=score};}ave=sum/4.0;printf("NO%d:%f\n",n,ave);}}上述程序有一条语句出目前途序位置不对旳。这条语句是。A)sum=0.0;B)sum+=score;C)ave=sum/4.0;D)printf("NO%d:%f\n",n,ave);14.设有如下函数定义:intf(char*s){char*p=s;while(*p!=‘\0’)p++;return(p-s);}假如在主函数中用下面语句调用该函数,则输出成果应为:。printf(“%d\n”,f(“goodbye!”));A)3B)6C)8D)015.下面程序输出成果是:。intm=13;intfun(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf(“%d\n”,fun(a,b)/m);}A)1B)2C)7D)10二、判断题(本大题10分,每题1分)1.C程序是按书写次序执行。()2.在C语言中,int、char和short三种类型数据在内存中所占用字节数都是同样。()3.在C程序中语句是以分号结束。()4.在C语言if语句中,else可以单独出现。()5.在C语言中break和continue都是循环中途退出语句,其中break语句用来跳出一次循环构造;continue语句用来结束一层循环。()6.C语言中while和do-while循环重要区别是do-while语句循环体至少会被执行一次,而while语句循环体则也许一次也不执行。()7.数组首地址不仅能通过数组中第一种元素地址体现,也可以通过数组名来体现。()8.在C语言中,函数strcpy是用来连接字符串。()9.函数返回值类型是由函数类型和return语句中体现式类型共同决定,当这两类型不一致时最终起决定作用是return中体现式类型。()10.由于指针变量存储是地址,指针变量被定义之后可以指向任一类型变量。()三、程序填空题(本大题12分,每题2分)1. 如下程序可求出所有水仙花数(指3位正整数中各位数字立方和等于该数自身,如153=13+53+33),请填空。main(){intx,y,z,a[10],m,i=0;printf(“shuixianhuanshu:\n”);for(____(1)____;m<1000;m++){x=m/100;y=____(2)____;z=m%10;if(m==x*x*x+y*y*y*y+z*z*z){____(3)____;i++;}}for(x=0;x<i;x++)printf(“%6d”,a[x]);}2. 如下程序可计算10名学生1门功课成绩平均分,请填空。floataverage(floatarray[10]){inti;floataver,sum=array[0];for(i=1;____(4)____;i++)sum+=____(5)____;aver=sum/10;return(aver);}main(){floatscore[10],aver;inti;printf(“\ninput10scores:”);for(i=0;i<10;i++)scanf(“%f”,&score[i]);aver=____(6)____;printf(“\naveragescoreis%5.2f\n”,aver);}四、写出下面程序执行成果(本大题24分,每题4分)1.main(){inti=2,p;p=f(i++,++i);printf(“%d”,p);}intf(inta,intb){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}2.#include<stdio.h>main(){inti,j;for(i=0;i<=3;i++){for(j=0;j<=5;j++){if(i==0||j==0||i==3||j==5)printf(“*”);elseprintf(“”);}printf(“\n”);}}3.main(){intn=0;while(n++<=1);printf("%d,",n);printf("%d\n",n);}4.inta=5;intb=7;main(){inta=4,b=5,c;c=plus(a,b);printf(“A+B=%d\n”,c);}plus(intx,inty){intz;z=x+y;return(z);}5.#include<stdio.h>main(){charb[]="ABCDEFG"char*chp=&b[7];while(--chp>&b[0])putchar(*chp);putchar('\n');}6.structn{intx;charc;};main(){structna={10,’x’};func(a);printf(“%d,%c”,a.x,a.c);}func(structnb){b.x=20;b.c=’y’;}五、编程题(本大题24分,第一题7分,第二题8分,第三题9分)1. 试编程完毕如下功能:输入一种不多于4位整数,求出它是几位数,并逆序输出各位数字。2. 若有一4*4二维数组,试编程完毕如下功能:(1)求4*4列数组对角线元素值和。(2)将二维数组元素行列互换后存入另一数组,并将此数组输出。3. 有两个字符串,各有10个字符,是编程完毕如下功能:(1)分别找出两个字符串中最大字符元素;(2)将两字符串对应位置元素逐一比较,并记录输出两个字符串对应元素不不不小于、不不小于和等于次数。(所有功能都通过函数调用实现)模仿试题一答案一、 选用题(本大题30分,每题2分)1~5DAAAA6~10BCDDD11~15CBCDA二、 判断题(本大题10分,每题1分)1.×2.√3.×4.×5.√6.×7.√8.×9.√10.×三、程序填空题(本大题12分,每题2分)评分原则:全对满分,半对半错给二分之一分,全错不得分。1.(1)s=0(2)m%n==0(3)s==m2.(4)i<=10-j(5)a[i]>a[i+1](6)a[i+1]=t四、写出下面程序执行成果(本大题24分,每题4分)评分原则:全对满分,半对半错给二分之一分,全错不得分。1.c=F2.over3.#####*####**###***##****#*****4.i=7;j=6;x=7<cr>i=2;j=7;x=5;<cr>5.i=10,j=26.10,x五、编程题(本大题24分,第一题7分,第二题8分,第三题9分)1.这是一种答案,可以不使用循环,使用SWITCH语句来做。#include<stdio.h>main(){intn=1,m=0,k,mod_mn=1;printf(“PleaseInputmvalue:\n”);scanf(“%d”,&m);n=1;for(k=0;;k++){mod_mn=m/(n*10);printf(“%d”,(m-mod_mn*n*10)/n);if(mod_mn==0)break;n*=10;}}2.main(){inti,array[10];intmin,k=0;printf(“\nPleaseinputarray10elements\n”);for(i=0;i<10;i++)scanf(“%d”,&array[i]);printf(“Beforeexchange:\n”);for(i=0;i<10;i++)printf(“%5d”,array[i]);min=array[0];for(i=1;i<10;i++)if(min>array[i]){min=array[i];k=i;}array[k]=array[0];array[0]=min;printf(“\nAfterexchange:\n”);for(i=0;i<10;i++)printf(“%5d”,array[i]);printf(“\nk=%d\nmin=%d\n”,k,min);}3.#include<stdio.h>main(){char*str;printf(“输入一字符串:”);gets(str);printf(“[%s]长度为:%d\n”,str,string_length(str));}string_length(char*s){intlen=0;while(*s++)len++;return(len);}模仿试题二答案一、 选用题(本大题30分,每题2分)1~5DABDB6~10CABAB11~15BDCBC二、判断题(本大题10分,每题1分)1.√2.×3.√4.×5.√6.×7.√8.×9.×10.√三、程序填空题(本大题12分,每题2分)评分原则:全对满分,半对半错给二分之一分,全错不得分。1.(1)a=b(2)a<c(3)t=b2.(4)a[i][0]=1;(5)a[i][i]=1(6)a[i-1][j]+a[i-1][j-1]四、写出下面程序执行成果(本大题24分,每题4分)评分原则:全对满分,半对半错给二分之一分,全错不得分。1.1592610371148122.2357111317193.inputaintegernumber:55!=1204.475.5,26.1:a=1,b=12:a=1,b=23:a=1,b=3五、编程题(本大题24分,第一题7分,第二题8分,第三题9分)1.#include<math.h>#include<stido.h>main(){floata,b,c,s,s1;printf(“Pleaseenter3reals:\n”);scanf(“%f%f%f”,&a,&b,&c);if((a+b)>c&&(a+c)>b&&(b+c)>a){s=(a+b+c)*0.5;s1=s*(s-a)*(s-b)*(s-c);s=sqrt(s1);printf(“\nAreaofthetriangleis%f\n”,s);}elseprintf(“Itisnottriangle!\n”);}2.#include<stdio.h>main(){intm1,n1,n,k,temp;floats=0;printf(“PleaseInputn:\n”);scanf(“%d”,&n);m1=1;n1=2;for(k=0;k<n;k++){s+=(float)n1/m1;temp=m1;m1=n1;n1=temp+n1;}printf(“\ns=%f”,s);}3.10.main(){floataverage(floatb[]);voidsort(floatb[]);floata[10],j,aver;for(j=0;j<10;j++)scanf(“%f”,&a[j]);aver=average(a);printf(“aver=%f\n”,aver);sort(a);for(j=0;j<10;j++)printf(“%.2f”,a[j]);}floataverage(floatb[]){intj;floatsum=0,aver;for(j=0;j<10;j++)sum=sum+b[i];aver=sum/10.0;return(aver);}voidsort(floatb[]){inti,j,max,k;for(i=0;i<10;i++){max=b[i];k=i;for(j=i+1;j<10;j++)if(max<b[j]){max=b[j];k=j;}b[k]=b[i];b[i]=max;}}模仿试题三答案一、选用题(本大题30分,每题2分)1~5ACBDD6~10BCDDA11~15ADDDA二、判断题(本大题10分,每题1分)1.√2.×3.×4.×5.√6.×7.√8.×9.×10.√三、程序填空题(本大题12分,每题2分)评分原则:全对满分,半对半错给二分之一分,全错不得分。1.(1)ch>=’A’&&c<=’Z’(2)ch=ch-322.(3)a[i][j]+b[i][j](4)printf(“\n”)3.(5)n*fac(n-1)(6)ac(n)四、写出下面程序执行成果(本大题24分,每题4分)评分原则:全对满分,半对半错给二分之一分,全错不得分。1.3.140000,3.1412.*********3.84.215.x=9x=106.CDG五、编程题(本大题24分,第一题7分,第二题8分,第三题9分)1.#include<math.h>main(){floatx,y;scanf(“%f”,&x);if(x<0)y=x*x;elseif(x>=0&&x<10)y=-0.5*x+10;elsey=x-sqrt(x);printf(“y=%f”,y);}2.17.main(){floata=1,b,pi,t=1;while(t>=1e-6){pi=pi+t;a++;b=a*a;t=1/b;}pi=pi*6;printf(“pi=%f”,pi);}3.#include<stdio.h>main(){intdata[10],m,n,j,*p1,*p2,temp;printf(“\nInput10integer\n”);for(j=0;j<10;j++)scanf(“%d”,&data[j]);printf(“Inputmandn:\n”);scanf(“%d%d”,&m,&n);if(m<1||m>10||n<1||n>10||(m+n)>11){printf(“InputError!\n”);exit(0);}sort(data,10);printf(“Resultofsortis:\n”);for(j=0;j<10;j++)printf(“%d”,data[j]);

温馨提示

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

评论

0/150

提交评论