2011年计算机应用类C语言模拟练习(一)

合集下载

计算机C语言模拟练习

计算机C语言模拟练习

计算机C语言模拟练习计算机C语言模拟练习1下列各题A,B,C,D四个选项中,只有一个选项是正确的。

1.所谓"裸机"是指A)单片机B)单板机C)不装备任何软件的计算机D)只装备操作系统的计算机2.下面存储器中,存取速度最快的是A)软盘B)硬盘C)光盘D)内存3.系统软件中最重要的是A)操作系统B)语言自理程序C)工具软件D)数据库管理系统4.CPU自理的数据基本单位为字,一个字的字长A)为8个二进制位B)为16个二进制位C)为32个二进制位D)与CPU芯片的型号有关5.打印当前屏幕内容应使用的控制健是A)Scroll-LockB)Num-LockC)PgDnD)PrtSc(Print Screen)计算机C语言模拟练习21). 关于C语言的变量,以下叙述中错误的是( )A.所谓变量是指在程序运行过程中其值可以被改变的量B.变量所占的存储单元地址可以随时改变C.程序中用到的所有变量都必须先定义后才能使用D.由三条下划线构成的符号名是合法的变量名正确答案:B答案解析:变量是指在程序运行过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单元。

在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期间,这个分配的存储单元不会改变,但是其值可以变化。

变量命名要符合标识符的规定,其中下划线是标识符的组成字符。

程序中所有变量都必须先定义后使用。

2). 当变量c的值不为2、4、6时,值也为″真″的表达式是( )A.(c==2)||(c==4)||(c==6)B.(c>=2 && c<=6)&&!(c%2)C.(c>=2 &&c<=6)&&(c%2!=1)D.(c>=2 && c<=6) || (c!=3)|| (c!=5)正确答案:D答案解析:逻辑或运算中,只要有一项为真,表达式的值就为真,故选项D中c的值不为2、4、6时,那么表达式(c>=2&& c<=6)以及(c!=3)、(c!=5)必有一个成立,表达式的值也为真。

2011年计算机等级考试二级C语言上机题库(含答案)(1)

2011年计算机等级考试二级C语言上机题库(含答案)(1)

重要说明:本题库为从题中一题一题复制出来工作量大,而且有许多表达式无法在word中快速表示出来(这样会加大工作量)故而省略,或者表达错位,有的地方可能或者肯定会有错,我相信准备参加C语言二级考试的同学应当能够对照参考答案看出来,这是2011年最新版最完整考试题库,相信大家一定都能通过!第一套程序填空给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。

如输入一个数:27638496,新的数为729第一空:{ t=*n%10;第二空:if(t%2!=0)第三空:*n=x;2.程序修改给定程序modi1.c中函数fun的功能是:计算n!。

例如,给n输入5,则输出120.000000。

double fun(int n ){ double result=1.0;/*****found******/if(n==0)return 1.0;while(n>1&&n<170)/*****found******/result*=n--;return result;}程序设计请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。

例如,若输入字符串“-1234”,则函数把它转换为整数值-1234。

long fun(char *p){int i,len,t;long x=0;len=strlen(p);if(p[0]==‘-‗){ t=-1;len--;p++;}else t=1;while(*p)x=x*10-48+(*p++);return x*t;}第二套1. 给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

2011年计算机二级C语言编写程序题及答案解析精选1

2011年计算机二级C语言编写程序题及答案解析精选1

2011年计算机二级C语言编写程序题及答案解析精选【4.1】已知银行整存整取存款不同期限的月息利率分别为:0.315%期限一年0.330%期限二年月息利率=0.345%期限三年0.375%期限五年0.420%期限八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。

【4.2】输入年份year和月month,求该月有多少天。

判断是否为闰年,可用如下C语言表达式:year%4==0&&year0!=0||year@0==0。

若表达式成立(即表达式值为1),则year 为闰年;否则,表达式不成立(即值为0),year为平年。

【4.3】编写一个简单计算器程序,输入格式为:data1op data2。

其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。

【4.4】输入n值,输出如图所示矩形。

【4.5】输入n值,输出如图所示平行四边形。

【4.6】输入n值,输出如图所示高为n的等腰三角形。

【4.7】输入n值,输出如图所示高为n的等腰三角形。

【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。

【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。

【4.10】输入n值,输出如图所示边长为n的空心正六边型。

【4.11】输入n值,输出如图所示图形。

【4.12】输入n值,输出如图所示图形。

【4.13】输入n值,输出如图所示图形。

【4.14】输入n值,输出如图所示图形。

【4.15】输入n值,输出如图所示图形。

【4.16】输入n值,输出如图所示图形。

(例为n=6时)【4.17】编写程序,输出如图所示sin(x)函数0到2π的图形。

【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。

【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。

若屏幕的横向为x轴,纵向为y 轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。

c语言模拟试卷一

c语言模拟试卷一

一、单选题(每小题1分,共80分)1.客机、火车订票系统属于(B)。

A.科学计算方面的计算机应用B.数据处理方面的计算机应用C.过程控制方面的计算机应用D.人工智能方面的计算机应用2.按照计算机用途分类,可将计算机分为(D)。

A.通用计算机、个人计算机B.数字计算机、模拟计算机C.数字计算机、混合计算机D.通用计算机、专用计算机3.下列数中最大的数是(D)。

A.(1000101)2B.(107)8C.(73)10D.(4B)164.已知:3×4=10,则5×6=(B)。

A.24B.26C.30D.365.假设某计算机的字长为8位,则十进制数(+67)10的反码表示为(B)。

A.01000011B.00111100C.00111101D.101111006.假设某计算机的字长为8位,则十进制数(-75)10的补码表示为()。

A.01001011B.11001011C.10110100D.101101017.已知:‘B’的ASCII码值是66,则码值为1000100的字符为()。

A.‘C’B.‘D’C.‘E’D.‘F’8.在计算机系统内部,汉字的表示方法是采用()。

A.ASCII码B.机内码C.国标码D.区位码9.汉字“办”的区位码是1676,其国标码是()。

A.1676HB.4908HC.306CHD.3108H10.一个汉字字形采用()点阵时,其字形码要占72B。

A.16×16B.24×24C.32×32D.48×4811.在逻辑运算中有Y=A+B,则表示逻辑变量A和B进行()。

A.与运算B.或运算C.非运算D.与非运算12.通常所说的CPU包括()。

A.运算器B.控制器C.运算器和控制器D.运算器、控制器和内存13.计算机的内存储器比外存储器()。

A.更便宜B.存储速度快C.存储容量大D.虽贵但能存储更多信息14.外部设备是指()。

A.输入设备和输出设备B.输入设备、输出设备、主存储器C.输入设备、输出设备和存储器D.输入设备、输出设备、辅助存储器15.计算机工作时,内存储器用来存储()。

2011年全国计算机等级二级C语言模拟试题及答案

2011年全国计算机等级二级C语言模拟试题及答案

2011年全国计算机等级二级C语言模拟试题及答案(1)一、填空题1、C语言中基本的数据类型有:__________ 、___________ 、___________ 。

2、C语言中普通整型变量的类型说明符为_____________ ,在内存中占___________ 字节,有符号普通整型的数据范围是____________ 。

3、整数-35在机内的补码表示为__________ 。

4、执行下列语句int a=8; a+=a-=a*a;后,a的值是_________________ 。

5、有如下语句:char A[ ]={ ” a I a student ”该;字符串的长度是 ____________ ,A[3]= _______________ 。

6符号” a” a'区别是_____________ 。

7、所谓指针”就是__________ 。

“ &运算符的作用是 _________ 。

“ *运算符的作用是 _________ 。

8、有如下输入语句:scanf(“ a=%d,b=%d,c=%d,&a,&b,&为使变量a的值为1,b的值为3, c的值为2,从键盘输入数据的正确形式应是_______________ 。

二、选择题1、设整型变量a为5,使b不为2的表达式是()。

A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>3?2:12、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else 总是与()组成配对关系。

A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if3、以下程序的输出结果是()int x=10,y=10;printf(“ %d n”,x,--y);A.10 10B.9 9C.9 10D.10 94、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i个元素的地址为( )。

c语言程序设计模拟题

c语言程序设计模拟题

c语言程序设计模拟题c语言程序设计模拟题一、选择题(1)能够将高级语言程序转换成目标语言程序的就是__c____。

a)调试程序b)解释程序c)编译程序d)编辑程序(2)__a____是构成c语言程序的基本单位。

a)函数b)过程c)子程序d)子例程(3)可以在c语言中用作用户标识符的就是__b___。

a)voidb)as_b3c)ford)2cdefine_123-abcdowordifcassig(4)若有以下类型说明语句:charw;intx;floaty,z;则表达式w*x+z-y的结果为__d___类型。

a)floatb)charc)intd)double(5)main(){floatx=123.456;printf(\}以上程序输出的结果是___d___。

a)123.4b)123.5c)123.45d)123.46(6)下面语句的输入结果就是___c___。

printf(\a)14b)8c)5d)输入项不合法,并无正常输入(7)以下程序的输入结果就是__b____。

main(){inta=0,b=0,c=0;if(++a>0|++b>0)++c;printf(\}a)a=0,b=0,c=0b)a=1,b=1,c=1c)a=1,b=0,c=1d)a=0,b=1,c=1(8)以下程序的输入结果就是__b____。

main(){inti;for(i=1;i+1;i++){if(i>4){printf(\}printf(\}a)55b)56c)程序错误,没有输出d)循环条件永远为真,死循环(9)下列程序的输出结果是___a___。

#definea100main(){inti=0,sum=0;do{if(i==(i/2)*2)continue;sum+=i;}while(++iprintf(\}a)2500b)2050c)4d)0(10)下列程序的输出结果是__d____。

main(){inti=3;switch(i){case1:case2:printf(\case3:case4:break;default:printf(\}}a)0b)3c)okd)没任何输入(11)以下程序执行后的输入结果就是__c____。

C语言程序设计模拟试题一(含答案)

C语言程序设计模拟试题一(含答案)

C语言程序设计模拟试题一(含答案)1、下列述叙中正确的是A) 显示器和打印机都是输出设备B) 显示器只能显示字符C) 通常的彩色显示器都有7种颜色D) 打印机只能打印字符和表格2、微型计算机中运算器的主要功能是进行A) 算术运算B) 逻辑运算C) 算术和逻辑运算D) 初等函数运算3、是DOS系统的最外层模块,通常称之为A) 引导程序B) 输入输出系统C) 命令处理系统D) 文件管理系统4、电子邮件是A) 网络信息检索服务B) 通过Web网页发布的公告信息C) 通过网络实时交互的信息传递方式D) 一种利用网络交换信息的非交互式服务5、和十进制数225相等的二进制数是A) 11101110 B) 11111110C) 10000000 D) 111111116、下列叙述中正确的是A) 指令由操作数和操作码两部分组成\B) 常用参数xxMB表示计算机的速度C) 计算机的一个字长总是等于两个字节D) 计算机语言是完成某一任务的指令集7、计算机的内存储器比外存储器A) 价格便宜B) 存储容量大C) 读写速度快D) 读写速度慢8、设当前盘为C盘,执行DOS命令"COPY B:\A.TXT PRN"之后,结果是A) B盘上的A.TXT文件被复制到C盘的PRN文件B) 屏幕上显示B盘上的A.TXT文件内容C) B盘上的A.TXT文件内容在打印机上输出D) B盘上的A.TXT文件被复制到B盘上的PRN文件9、要将当前盘当前目录下的两个文件X1.TXT和B1.TXT连接起来之后存入B盘当前目录下并且命名为Z.TXT,无论B 盘当前目录是什么,完成这件任务可以使用的命令是A) COPY A:X1.TXT+C:B1.TXT Z.TXTB) COPY X1.TXT+C:\\WS\\B1.TXT B:\\Z.TXTC) COPY A:X1.TXT+C:\\WS\\B1.TXTD) COPY X1.TXT+B1.TXT B:Z.TXT10、下列四组DOS命令中,功能等价的一组是A) COPY A:*.* B:与DISKCOPY A: B:B) COPY ABC.TXT+XYZ.TXT 与TYPE XYZ.TXT>>ABC.TXTC) COPY ABC.TXT+XYZ.TXT与COPY XYZ.TXT+ABC.TXTD) TYPE *.FOR>CON与COPY *.FOR CON11、设当前目录为D:\BB,现要把D:\AA目录下首字符是A的文本文件全部删除,应该使用命令A) DEL A*.TXT B) DEL \\AA\\A.TXTC) DEL \\AA\\A*.TXT D) DEL \\AA\\A?.TXT12、在Windows中,启动应用程序的正确方法是A) 用鼠标指向该应用程序图标B) 将该应用程序窗口最小化成图标C) 将该应用程序窗口还原D) 用鼠标双击该应用程序图标13、在Windows中,终止应用程序执行的正确方法是A) 将该应用程序窗口最小化成图标B) 用鼠标双击应用程序窗口右上角的还原按钮C) 用鼠标双击应用程序窗口中的标题栏D) 用鼠标双击应用程序窗口左上角的控制菜单框14、在微机系统中,对输入输出设备进行管理的基本程序模块(BIOS)存放在A) RAM中B) ROM中C) 硬盘中D) 寄存器中15、使计算机病毒传播范围最广的媒介是A) 硬磁盘B) 软磁盘C) 内部存储器D) 互联网16、设有int x=11; 则表达式(x++ * 1/3) 的值是A) 3 B) 4C) 11 D) 1217、下列程序的输出结果是main(){ double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf("%d \n", d*y);}A) 3 B) 3.2C) 0 D) 3.0718、下列程序执行后的输出结果是(小数点后只写一位)main(){ double d; float f; ling l; int i;i=f=1=d=20/3;printf("%d %ld %f %f \n", i,l,f,d);}A) 6 6 6.0 6.0 B) 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.019、下列变量定义中合法的是A) short _a=1-.le-1; B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1-e-3;20、设int x=1, y=1; 表达式(!x||y--)的值是A) 0 B) 1C) 2 D) -121. 与y=(x>0?1:x<0?-1:0);的功能相同的if语句是A) if (x>0) y=1;else if(x<0)y=-1;else y=0;B) if(x)if(x>0)y=1;else if(x<0)y=-1;else y=0;C) y=-1if(x)if(x>0)y=1;else if(x==0)y=0;else y=-1;D) y=0;if(x>=0)if(x>0)y=1;else y=-1;22. 以下循环体的执行次数是main(){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);}A) 3 B) 2C) 1 D) 023. 以下叙述正确的是A) do-while语句构成的循环不能用其它语句构成的循环来代替B) do-while语句构成的循环只能用break语句退出C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环D) 用do-while语句构成的循环,在while后的表达式为零时结束循环24. 下列程序执行后的输出结果是main(){ int x='f'; printf("%c \n",'A'+(x-'a'+1)); }A) G B) HC) I D) J25. 执行下面的程序段后,变量k中的值为int k=3, s[2];s[0]=k; k=s[1]*10;A) 不定值B) 33C) 30 D) 1026. 若已定义:int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中0≤i≤9, 则对a数组元素不正确的引用上A} a[p-a] B} *(&a[i])C} p[i] D} a[10]27、下列程序执行后的输出结果是void func(int *a,int b[]){ b[0]=*a+6; }main(){ int a,b[5];a=0; b[0]=3;func(&a,b); printf("%d \n,b[0]);}A) 6 B) 7C) 8 D) 928、下列程序的运行结果是#include <stdio.h>main(){ int a=2,c=5;printf("a=%d,b=%d\n",a,c); }A) a=%2,b=%5 B) a=2,b=5C) a=d, b=d D) a=%d,b=%d29、下列程序执行后的输出结果是main(){ int a[3][3], *p,i;p=&a[0][0];for(i=p; i<9; i++) p[i]=i+1;printf("%d \n",a[1][2]);}A) 3 B) 6C) 9 D) 随机数30、设有数组定义: char array [ ]="China"; 则数组array所占的空间为A) 4个字节B) 5个字节C) 6个字节D) 7个字节31、下列程序的输出结果是int b=2;int func(int *a){ b += *a; return(b);}main(){ int a=2, res=2;res += func(&a);printf("%d \n",res);}A) 4 B) 6C) 8 D) 1032、在以下四组中,每组有两个分别运算的函数,运算结果相同的是main(){ int i, j, m=0, n=0;for(i=p; i<2; i++)for(j=0; j<2; j++)if(j>=i) m=1; n++;printf("%d \n",n);}A) 4 B) 2C) 2 D) 033、下列程序的输出结果是struct abc{ int a, b, c; };main(){ struct abc s[2]={{1,2,3},{4,5,6}}; int t;t=s[0],a+s[1],b;printf("%d \n",t);}A) 5 B) 6C) 7 D) 834、设int b=2;表达式(b>>2)/(b>>1)的值是A) 0 B) 2C) 4 D) 835、在C程序中,可把整型数以二进制形式存放到文件中的函数是A) fprintf函数B) fread函数C) fwrite函数D) fputc函数36、下列程序执行后的输出结果是main(){ char x=0xFFFF; printf("%d \n",x--); } A) -32767 B) FFFEC) -1 D) -3276837、若有定义: float w;int a, b;则合法的switch语句是A) switch(w){ case 1.0: printf("*\\n");case 2.0: printf("**\\n");}B) switch(a);{ case 1 printf("*\\n");case 2 printf("**\\n");}C) switch(b){ case 1: printf("*\\n");default: printf("\\n");case 1+2: printf("**\\n");}D) switch(a+b);{ case 1: printf("*\\n");case 2: printf("**\\n");default: printf("\\n");}38、以下程序段的执行结果是int a, y;a=10; y=0;do{ a+=2; y+=a;printf("a=%d y=%d\n",a,y);if(y>20) break;{ while(a=14);A} a=12 y=12a=14 y=16a=16 y=20a=18 y=24B} a=12 y=12a=16 y=28C} a=12 y=12D} a=12 y=12a=14 y=26a=14 y=4439、若有以下调用语句,则不正确的fun函数的首部是main(){ …int a[50],n;…fun(n, &a[9]);…A} void fun(int m, int x[]) B} void fun(int s, int h[41])C} void fun(int p, int *s) D} void fun(int n, int a)40、语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是(说明:'\b'是退格符)A) a\\bre\\'hi\\'y\\\\\\bou B) a\\bre\\'hi\\'y\\bouC) re'hi'you D) abre'hi'y\\bou41、请选出正确的程序段A) int *p;scanf("%d",p);…B) int *s, k;*s=100;…C) int *s, k;char *p, c;s=&k;p=&c;*p='a';…D) int *s, k;char *p, e;s=&k;p=&c;s=p;*s=1;42、已知指针p的指向如下图所示,则执行语句*--p;后*p的值是A) 30 B) 20C) 19 D) 2943、设已有定义:char *st="how are you";下列程序段中正确的是A) char a[11], *p; strcpy(p=a+1,&st[4]);B) char a[11]; strcpy(++a, st);C) char a[11];strcpy(a, st);D) char a[], *p;strcpy(p=&a[1],st+2);44、下列程序执行后的输出结果是mai(){ char arr[2][4];strcpy(arr,"you"); strcpy(arr[1],"me");arr[0][3]='&';printf("%s \n",arr);}A) you&ne B) youC) me D) err45、下列程序执行后的输出结果是void func1(int i);void func2(int i);char st[]="hello,friend!";void func1(int i){ printf("%c",st[i]);if(i<3){i+=2;func2(i);}}void func2(int i){ printf("%c",st[i]);if(i<3){i+=2;func1(i);}}main(){ int i=0; func1(i); printf("\n");}A) hello B) helC) hlo D) hlm46、假定下列程序的可执行文件名为prg.exe,则在该程序所在的子目录下输入命令行: prg hello good<回车>后,程序的输出结果是main()int argc, char *argv[]){int i;if(argc<-0)return;for(i=1;i<argc;i++)printf("%c", *argv[i]);}A) hello good B) hgC) hel D) hellogood47、下列程序执行后的输出结果是#define MA(x) x*(x-1)main(){ int a=1,b=2;printf("%d \n",MA(1+a+b));}A) 6 B) 8C) 10 D) 1248、变量a所占内存字节数是union U{ char st[4];int i;long l;};struct A{ int c;union U u;}a;A) 4 B) 5C) 6 D) 849、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是main(){char s[100];int c, i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s \n",c,i,s);}A) 123,456,789 B) 1,456,789C) 1,23,456,789 D) 1,23,45650、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是main(){char s[100];int c, i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s \n",c,i,s); }A) 123,456,789 B) 1,456,789 C) 1,23,456,789 D) 1,23,456答案:ACCDD ACCDBCDDBD ACAABACDAA DABBCBABDA CDBCCCBABC BBCDD。

2011年全国计算机二级C语言上机题题库大全

2011年全国计算机二级C语言上机题题库大全

2011年全国计算机二级C语言上机题题库1:第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。

答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2:第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。

答案:void fun(int*a,int*n){int i,j=0;for(i=2;i<1000;i++)if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;}3:第3题请编写函数void fun(int x,int pp[],int*n),它的功能是:求出能整除x 且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

答案:void fun(int x,int pp[],int*n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4:第4题请编写一个函数void fun(char*tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。

答案:void fun(char*tt,int pp[]){int i;for(i=0;i<26;i++)pp[i]=0;while(*tt){switch(*tt){case‘a’:pp[0]++;break;case‘b’:pp[1]++;break;case‘c’:pp[2]++;break;case‘d’:pp[3]++;break;case‘e’:pp[4]++;break;case‘f’:pp[5]++;break;case‘g’:pp[6]++;break;case‘h’:pp[7]++;break;case‘i’:pp[8]++;break;case‘j’:pp[9]++;break;case‘k’:pp[10]++;break;case‘l’:pp[11]++;break;case‘m’:pp[12]++;break;case‘n’:pp[12]++;break;case‘o’:pp[14]++;break;case‘p’:pp[15]++;break;case‘q’:pp[16]++;break;case‘r’:pp[17]++;break;case‘s’:pp[18]++;break;case‘t’:pp[19]++;break;case‘u’:pp[20]++;break;case‘v’:pp[21]++;break;case‘w’:pp[22]++;break;case‘x’:pp[23]++;break;case‘y’:pp[24]++;break;case‘z’:pp[25]++;break;}tt++;}}5:第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。

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

一、单选题(4*5=20分)1.若有下面的程序片段:int a[12]={0},*p[3],**pp,i;for(i=0;i<3;i)p[i]=&a[i*4];pp=p;则对数组元素的错误引用是( ).A.pp[0][1]B.a[10]C.p[3][1]D.*(*(p+2)+2)2.下面程序的输出结果是( ).#include "string.h"main( ){ char *p1="abc",*p2="ABC",str[50]= "xyz";strcpy(str+2,strcat(p1,p2));printf("%s\n",str);}A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC 3.以下说法中,正确的是:。

A.P标记符与BR标记符的作用一样。

B.多个P标记符可以产生多个空行。

C.多个BR标记符可以产生多个空行。

D.P标记符的结束标记符通常不可以省略。

4.以下有关列表的说法中,错误的是:。

A.有序列表和无序列表可以互相嵌套。

B.指定嵌套列表时,也可以具体指定项目符号或编号样式。

C.无序列表应使用 UL 和 LI 标记符进行创建。

D.在创建列表时,LI 标记符的结束标记符不可省略。

二、多选题(5分)1.以下关于FONT标记符的说法中,正确的是:。

A.可以使用 color 属性指定文字颜色。

B.可以使用 size 属性指定文字大小(也就是字号)。

C.指定字号时可以使用 1--7 的数字。

D.语句 <FONT size="+2">这里是2号字</FONT> 将使文字以2号字显示。

三、分析程序的运行结果(5*5分=25分)1. .以下程序的执行结果是。

#include <stdio.h>fut(int **s, int p[2][3]){ **s=p[1][1];}void main(void){ int a[2][3] = {1,3,5,7,9,11}, *p;p = (int *) malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}2. 以下程序的输出结果是。

struct HAR{ int x, y;struct HAR *p;} h[2];main(){ h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1].x;h[1].p=&h[0].x;printf("%d %d \n",(h[0].p)->x,(h[1].p)->y);}3. 以下程序的输出结果是#include<stdio.h>main( ){ FILE*fp;int i,a[4]={1,2,3,4},b;fp=fopen("data.dat","wb");for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);fclose(fp);fp=fopen("data.dat","rb");fseek(fp,-2L*sizeof(int).SEEK_END);fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/fclose(fp);printf("%d\n",b);}4. 以下程序的输出结果是int f(int a[],int n){if(n>1)return a[0]+f(&a[1],n-1);else return a[0];}5、main(){int aa[3]={1,2,3},s;s=f(&aa[0],3);printf("%d\n",s);}四、程序填空题(4*5=20分)1. 以下程序的功能是产生10个[30,90]区间上的随机整数,然后对其用选择法进行由大到小的排序。

#include "stdlib.h"main(){int t;int i,j,k;int a[10];for(i=0;i<10;i++)a[i]=_____________;for(i=0;i<9;i++){k=i;for(j=i+1;j<10;j++)if(_________)k=j;if(k!=i) {t=a[k];a[k]=a[i];a[i]=t;}}for(i=0;i<10;i++ )printf("%5d",a[i]);printf("\n");}2. 已知head指向单链表的第一个结点,以下函数完成往降序单向链表中插入一个结点,插入后链表仍有序。

请填空。

# include <stdio.h>struct student{int info; struct student *link; };struct student *insert(struct student * head, struct student * stud){ struct student * p0, * p1, * p2; p1=head; p0=stud;if(head= =NULL){head=p0; p0->link=NULL;}else while(p0->info<p1->info)&&(p1->link!=NULL)){p2=p1; p1=p1->link; }if(p0->info>=p1->info){ if(head= =p1) {p0->next=p1; head=p0; }else {p2->link=p0; ; }}else {p1->link=p0; ; }return(head);}五、程序改错题(4*5=20分)1.函数fun的功能是:根据以下公式求π值,并作为函数值返回。

例如,给指定精度的变量eps输入0.0005时,应当输出Pi=3.140578。

π 1 1 2 1 2 3 1 2 3 4— = 1 + — + — x — + — x — x — + — x — x — x — + ...2 3 3 5 3 5 7 3 5 7 9double fun(double eps){double s,t;int n=1;s=0.0;t=1;while(t<=eps){s+=t;t=n/(2*n+1)*t;n++;}return 2*s;}main(){double x;scanf("%lf",&x);printf("\neps=%lf,Pi=%lf\n\n",x,fun(x));}2. 、编写一个函数,该函数可以统计一个长度为3的字符串在另一个字符串中出现的次数。

例如,假定输入的主字符串为:asdasasdfgasdaszx67asdmklo,子字符串为:asd,则应输出n=4。

#include<stdio.h>#include<string.h>#include<conio.h>int fun(char *str,char *substr){int i,n=0;for(i=0;i<=strlen(str);i++)if((str[i]==substr[0])&&(str[i+1]==substr[1])&&(str[i+2]==substr[2]) )++i;return n;}main(){char str[81],substr[4];int n;clrscr();printf("输入主字符串: ");gets(str);printf("输入子字符串: ");gets(substr);puts(str);puts(substr);n=fun(str,substr);printf("n=%d\n",n);}六、程序编写(7分)ACM学校有学生100名,刚进行完期中考试,想知道全校学生第三名的成绩是多少,有多少位同学?如果有多位同学都是最高分,那都是第一名,同理,如果第二高分有多位,也都是第二名,不用排序的方法,找出第三名学生的成绩。

[选考题]程序填空题:1.以下程序的功能是将文件file1.c的内容输出到屏幕上并复制到文件file2.c中。

请填空。

# include <stdio.h>main( ){ (1) ;fp1= fopen(“file1.c”, ”r”);fp2= fopen(“file2.c”, ”w”);while(!feof(fp1)) putchar(fgetc (fp1));(2)while(!feof(fp1))(3) ;fclose(fp1);fclose(fp2); }程序改错题:1. 使用指向指针的指针的方法,完成对n个字符串(例如10个城市名)进行排序并输出。

要求从键盘输入n个字符串并且把排序单独编写成函数#include <stdio.h>1 #include <string.h>2 void select_sort(char *p, int n)3 {char *temp;3 int i,j,k;4 for (i=0;i<n-1;i++)5 {k=i;6 for (j=i+1;j<n;j++)7 if (*(p+k)>:*(p+j))) k=j;8 if (k!=i) {temp=*(p+i); *(p+i)=*(p+k); *(p+k)=temp; }}}void main( )9 { int i, n;10 char **pp, *p_str[20], string[20][30];11 printf ("please input string number(less than 20):\n");12 scanf ("%d",&n);13 for (i=0;i<n;i++)14 p_str[i]=string[i];15 printf ("please input string:\n");16 for(i=0;i<n;i++)17 scanf ("%s",p_str[i]);18 pp=p_str;19 select_sort(pp,n);20 printf ("the sort result is:\n");for (i=0;i<n;i++)printf ("%s\n", p_str[i]);}程序编写:n在数组中的坐标。

相关文档
最新文档