好文档 - 专业文书写作范文服务资料分享网站

浙江省计算机二级C语言上机题库

天下 分享 时间: 加入收藏 我要投稿 点赞

#define len(x1,y1,x2,y2) sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)) void main()

{ FILE *p; int i,j; float c,minc;

float x[]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65}; float y[]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33}; minc=len(x[0],y[0],x[1],y[1]);

/****以下要求考生写的代码****/

p=fopen(“design.dat”,”w”); for(i=0;i<10;i++)

for(j=i+1;j<10;j++)

{c=len(x[i],y[i],x[j],y[j]); if(c

fprintf(p,”%f”,minc); fclose(p); } 试题三

设计程序:数组元素x[i]、y[i]表示平面上某点坐标,统计10个点中处在圆 (x-1)*(x-1)+(y+0.5)*(y+0.5)=25内的点数k,并将变量k的值 以格式\写到考生目录中Paper子目录下的新建文件design.dat中。 #include #include void main()

{ FILE *p; int i,k=0;

float x[]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65}; float y[]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33}; //考生在这里添加代码

p=fopen(\

for(i=0;i<10;i++)

if((x[i]-1)* (x[i]-1)+ (y[i]-0.5)* (y[i]-0.5)<25) k++;

fprintf(p,\ fclose(p); }

试题四

程序设计题:考生目录下有Design.c程序,请完成以下功能:x[i],y[i]表示点d(i)的平面坐标,求d(0)至d(1)、d(1)至d(2)、??d(4)至d(0)的连线所构成的边形面积,并将所求面积以格式“%.4f”写到考生目录下新建文件design.dat。 #include #include void main( )

{ FILE 8p; int i; float s,a,b,c,sdim=0;

float x[5]={-4.5,0.5,4.2,2.7,-3};

16 of 41

float y[5]={2.3,4.7,1.3,-2.5,-3.3}; p=fopen(“design.dat”, “w”);

// 此处起要求考生自己编制程序 for(i=1;i<4;i++) {

a=sqrt((x[0]-x[i])*(x[0]-x[i])+(y[0]-y[i])*(y[0]-y[i]));

b=sqrt((x[i]-x[i+1]) *(x[i]-x[i+1])+(y[i]-y[i+1])*(y[i]-y[i+1])); c= sqrt((x[0]-x[i+1]) *(x[0]-x[i+1])+(y[0]-y[i+1])*(y[0]-y[i+1])); s=(a+b+c)/2;

sdim+=sqrt(s*(s-a)*(s-b)*(s-c)); }

fprintf(p, “%.4f”, sdim); fclose(p); }

七、数制转换

1、程序调试题 试题一

将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符串形式输出。例如:输入十进制数79,将输出十六进制4f。 # include # include char trans(int x) {

if(x<10) return '0'+x; /********1********/

else return 'a'+x; //?a?+x---??a?+x-10 }

int DtoH(int n,char *str) {

int i=0; while(n!=0) {

str[i]=trans(n);

/********2********/

n%=16; //%-----?/ i++;} return i-1; }

void main() {

17 of 41

int i,k,n; char *str;

scanf(\k=DtoH(n,str);

for (i=0;i<=k;i++) printf(\}

2、程序填空题 试题一

该程序功能:将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。

#include void Dec2Bin(int m) {

int bin[32],j;

for(j=0;m!=0;j++) {

bin[j]= ______1______; //m%2 m=m/2; }

for(;j!=0;j--)

printf(\ //bin[j-1] }

void main() {

int n;

scanf(\ Dec2Bin(n); }

试题二

将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符串形式输出。例如:输入十进制数79,将输出十六进制4f。 # include # include char trans(int x) {

if(x<10) return '0'+x;

else _____1______;//return x+?a?-10; }

int DtoH(int n,char *str) {

int i=0; while(n!=0) {

18 of 41

______2______; //str[i]=trans(n); n/=16;i++;} return i-1; }

void main() {

int i,k,n; char *str;

scanf(\k=DtoH(n,str);

for (i=0;i<=k;i++) printf(\}

八、字符串处理

1、程序调试题 试题一

该程序功能: 输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。 例如:输入\,应输出\。 #include #include void main() {

char str[256]; int i,j,k=0,n; gets(str); n=strlen(str); for(i=0;i

/********1********/ if (tolower(str[i])<'a' || tolower(str[i])>'z') //=?a? >?z??<=?z? ||-〉&& { /********2********/ str[n]=str[i]; n++; //n--?k }

str[k]='\\0';

printf(\}

试题二

该程序功能:输入1个字符串,按字母首次出现次序输出其中所出现过的大写英文字母。 *如运行时输入字符串\,应输出\。 #include void main()

{ char x[80],y[26]; int i,j,ny=0;

19 of 41

gets(x);

for(i=0;x[i]!='\\0';i++)

if(x[i]>='A'&&x[i]<='Z') { for(j=0;j

if(y[i]==x[j]) continue; //i ?-?j continue--?break if(j==ny) { y[ny]=x[i]; ny++; } }

/***** 2 *****/

for(i=0;i<26;i++) //26---?ny printf(\ printf(\}

试题三

该程序功能:将两个字符串连接起来。 #include void main() {

char s1[80],s2[40]; int i=0,j=0;

printf(\ scanf(\

printf(\ scanf(\ while (s1[i] !='\\0') /****** 1 ******/

i+1; //i+1----?i++ while (s2[j] !='\\0') /****** 2 ******/

s1[++i]=s2[++j]; /* 拼接字符到s1 */ ++i----?i++ ++j---?j++ s1[i] ='\\0';

printf(\}

试题四

该程序功能:用递归法将一个六位整数n转换成字符串,例如输入123456,应输出字符串\。

#include

void itoa(long i,char *s) {

if(i==0) return;

/****** 1 ******/

*s = '1'+i; //?1?---??0? itoa(i/10,s-1);

20 of 41

浙江省计算机二级C语言上机题库

#definelen(x1,y1,x2,y2)sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))voidmain(){FILE*p;inti,j;floatc,minc;floatx[]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};fl
推荐度:
点击下载文档文档为doc格式
1ylt74uqyq05ej31u7x8
领取福利

微信扫码领取福利

微信扫码分享