计算机二级C语言填空题题库

更新时间:2024-03-29 22:11:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

二、填空题,共3小题,每题6分。 1.补充程序Ccon11.c,使其计算

|x|?2f(x)?2

x?1#include #include void main() { int x;

/**/ float f; /**/ printf(“input an integer:”); scanf(“%d”,&x);

f=/**/ ( abs(x)-2.0f )/ (x*x+1.0f) /**/; printf(“F(x)=%f\\n,f); }

2.补充程序Ccon012.C,该程序用公式π=4×(1-1/3+1/5-1/7+…+1/100001)计算圆周率的近似值。??2.467433

#include void main() {

double pi=0; long i,sign=1;

for(i=1;i<=100001;i+=2) { pi+=1.0*sign/i;

sign=/**/ (-1)*sign; /**/ }

pi*=/**/ 4*pi; /**/ printf(\}

3.程序Ccon013.C,程序实现从10个数中找出最大值和最小值。 #include #include int max,min;

void find_max_min(int *p,int n) {

int* q;max=min=*p;

for(q=p;q*q) min=*q; }

void main() {

int i,num[10];

printf(\

for(i=0;i<10;i++) scanf(\ find_max_min(/**/ num /**/,10);

printf(\ }

-------------------------------------------------------------------------------------------------------------------- 1. 补充Ccon021.C,使其计算满足下式的一位整数A和B的值。

AB ×BA __________

403

#include void main() {

int a,b,k;

int plu=/**/ 403 /**/; for(a=1;a<10;a++) for(b=1;b<10;b++){

k=(a*10+b)*/**/ (b*10+a) /**/;

if(k==plu) printf(\ } }

2. 补充程序Ccon022.C,使其实现输入若干整数,统计其中大于零和小于零的个数,以零结束输入。 #include void main() {

int n,a,b;

/**/

a=0;b=0;

scanf(\ while(n!=0){ if (n>0) a++; if (n<0) b++; /**/

scanf(\ }

printf(\ }

3. 补充程序Ccon023.C,该程序测试歌德巴赫猜想:从键盘上输入一个大于6的偶数,总能找到两个素数,使得这两个素数之和正好等于该偶数。 #include #include int prime(int n) {

int k,flag=1;

for(k=2;k<=n/2+1;k++)

if(n%k==0){flag=/**/ 1 /**/;break;}

return flag; }

void main() {

int num,a; clrscr(); do{

printf(\ scanf(\

}while(num<=6||num%2==1); for(a=2;a<=num/2+1;a++)

if(prime(a)&&prime(/**/ num-a /**/)) printf(\ }

_______________________________________________________________________________

1.补充Ccon031.C,用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。

#include #include

/**/ void main() /**/ {

float x,x0,f,f1; x=1.5; do{

x0=x;

f=((2*x0-4)*x0+3)*x0-6; f1=(6*x0-8)*x0+3; x=x0-f/f1;

}/**/ while /**/(fabs(x-x0)>=1e-6);

printf(\ }

2.补充程序Ccon032.C,输入一行字符中的大写字母转化为小写字母,小写字母转化为大写字母,其余字符不变。 #include #include void main() {

char s[80]; int i;

printf(\

for(i=0;((s[i]=getchar())!='\\n')&&(i<80);i++) ; s[i]='\\0';

for(i=0;s[i]!='\\0';/**/ i++ /**/) {

if(s[i]>='a'&&s[i]<='z') s[i]=s[i]-32;

else if(/**/ s[i]>='A'&&s[i]<='Z' /**/)

s[i]=s[i]+32; printf(\ } }

3. Ccon033.C,调用average函数计算数组元素的平均值。 #include

float average(int *pa,int n) {

int k;

/**/ float avg=0; /**/ for(k=0;k

avg=avg+ /**/ pa[k] /**/; avg=avg/n; return avg; }

void main() {

int a[5]={20,30,45,64,23}; float m;

m=average(/**/ a /**/,5); printf(\}

_______________________________________________________________________________

1. Ccon041.C 从键盘输入一个同学的姓名(如“Jack”),输出问候该同学的信息(如”Hello, Jack!”)。 /**/ #include /**/ void main() {

/**/char /**/ str[11];

printf(\ scanf(\

printf(\ getch(); }

2. Ccon042.C

使程序中的sort()函数用冒泡法对数组a中的m个元素从大到小

排序。

#include #include

void sort(int a[],int m) {

int i,j,t,swap;

for(i=0;i

swap=0;

for(j=0;j

if/**/ ( a[j]>a[j+1] ) /**/{ swap=1;

t=a[j];a[j]=/**/ a[j+1] /**/; a[j+1]=t; } }

if(!swap) break; } }

void main() {

int a[]={23,55,8,32,18,2,9}; int i,k=sizeof(a)/sizeof(int); sort(a,k);

for(i=0;i

3. Ccon043.C

fun()函数用勾股定理判断一个三角形是否为直角三角形。即个三角形的三边长a,b,c,若能构成直角三角形则返回1,不能回0。

#include #include

int fun(/**/ float a,float b,float c /**/)

输入一则返{

float temp; int bTrue=0;

if(a

if(fabs(/**/ a*a /**/-(b*b+c*c))<1.0e-15) bTrue=1; return bTrue; }

main() {

float a,b,c;

printf(\ scanf(\

if(fun(a,b,c)==1) printf(\ else printf(\ getch(); }

1. Ccon051.C

输入一个整数,输出该数的平方。 #include main() {

int x;

printf(\ scanf(\ /**/);

printf(\ /**/); getch(); }

2. Ccon052.C

Sort()函数用选择法对数组a中的m个元素从小到大排序。 #include #include

void sort(int a[],int m)

{

int i,j,k,t;

for(i=0;i

for(j=i+1;j if(k!=i){ t=a[k];a[k]=a[i];a[i]=/**/ t /**/;} } }

void main() {

int a[]={72,25,58,-90}; int i,m=sizeof(a)/sizeof(int); sort(a,m);

for(i=0;i

3. Ccon053.C

fun()函数,能根据三角形a,b,c,用公式,s=(a+b+c)/2。计算面积。(规定:若三边不能构成三角形,返回-1) #include #include

/**/ float /**/fun(float a,float b,float c) {

float s,area;

s=/**/ (a+b+c)/2 /**/; s=s*(s-a)*(s-b)*(s-c); if(s<0) area=-1; else area=sqrt(s); return area; }

main() {

float a,b,c,area;

printf(\ scanf(\ area=fun(a,b,c);

printf(\ getch(); }

_______________________________________________________________________________ 1. Ccon061.C

从键盘上输入一个4行4列的二维整型数组表示的4×4阶矩阵,并计算第1列元素之和。如输入:1 2 3 4

5 6 7 8 9 10 11 12 13 14 15 16 输出:28

#include #include main() {

int i,/**/ j /**/; int a[4][4],sum; sum=/**/ 0 /**/;

printf(\ for(i=0;i<4;i++) for(j=0;j<4;j++)

scanf(\ for(i=0;i<4;i++)

/**/ sum+=a[i][0]; /**/ printf(\ getch(); }

2. Ccon062.C

fun()函数用二分法在a中查找q,若找到第一个q,则返回对应下标,没找到返回-1。 #include

int fun(int a[],int n,/**/ int q /**/) {

int left,right,mid; left=0;right=n-1; while(left<=right){

mid=/**/ (left+right)/2 /**/; if(qa[mid]) left=mid+q; else return mid; }

return -1; }

main() {

int a[]={12,23,40,-45,56,-5};

printf(\ getch(); }

3. Ccon063.C

fun()函数判断输入的一个点(x,y)是否位于坐标在原点,半径为r(r>0)的圆内。 #include #include

int fun(/**/ float r /**/,float x,float y) {

int bIn;

bIn=/**/ sqrt(x*x+y*y) /**/

main() {

float radius,x,y;

printf(\ scanf(\

printf(\ scanf(\

if(fun(radius,x,y)) printf(\ else printf(\

getch(); } 1.1. 补充程序Ccon071.C,对函数f(x)?x2?2x?6,分别计算f(x?8)和 f(sinx)的值。如x=2.0,则输出:

f(x+8)=86.000 f(sinx)=5.008

#include

/**/ #include /**/ double fun(double x) {

/**/ return (x*x-2*x+6); /**/ }

void main() {

double x,y1,y2; clrscr();

printf(\ scanf(\ y1=fun(x+8);

y2=fun(/**/ sin(x) /**/); printf(\ printf(\ getch(); }

----------------------------------------------------------------------------------------------------------------------

m!2. 补充程序Ccon072.C,计算p?,其中m、n为整数且

n!(m?n)!m?n?0。

#include

double fun(unsigned m, unsigned n) {

unsigned i; double p=1.0;

for(i=1;i<=m;i++) /**/ p=p*i; /**/

for(i=1;i<=n;i++) /**/ p=p/i; /**/ for(i=1;i<=m-n;i++) p=p/i; return p; }

void main() {

clrscr();

printf(\ getch(); }

----------------------------------------------------------------------------------------------------------------------

3. 补充程序Ccon073.C,函数findmax返回数组中的最大元素。 #include

int findmax(int* array,int size); void main() {

int a[]={33,91,23,45,56,-12,32,12,5,90}; clrscr();

printf(\

/**/ findmax(a,sizeof(a)/sizeof(int) ) ); /**/ getch(); }

int findmax(int *array,int size) {

int i, /**/ max=*array /**/ ; for(i=1; imax) max=array[i]; return max; }

m1.补充程序Ccon081.C,根据输入的整数m(m>=0)值,计算?i。

i?1#include

unsigned sum(unsigned n)

{

unsigned i,/**/ sum=0;/**/ for(i=1;i<=n;i++) sum+=i;

/**/ return sum;/**/ }

void main() {

int m; clrscr();

printf(\ scanf(\ while(m<0){

printf(\ scanf(\ }

printf(\sum(m) /**/); getch(); }

----------------------------------------------------------------------------------------------------------------------

2. 补充程序Ccon082.C,使其实现将一个字符串str的内容逆向存储。 void main() {

int i,j,/**/ k /**/;

char str[]=\

for(i=0,/**/ j=strlen(str)-1 /**/;i

k=str[i];

str[i]=str[j]; str[j]=k; }

clrscr();

printf(\ getch(); }

----------------------------------------------------------------------------------------------------------------------

3. 补充程序Ccon083.C,实现将结构体数组mystudent中存储的各学生信息按其学号的升序排列,并输出排序后各个学生的信息。 #include #include typedef struct{ int num;

char name[20],sex[2]; int age,score; }STU;

STU mystudent[]={

{1111,\ {2104,\ {3121,\ {4118,\ {1456,\ };

void sort(STU* ps, int size) {

int i,flag,pass;

/**/ STU temp; /**/

for(pass=1;pass

flag=0;

for(i=0;i

if(/**/ (ps+i)->num>(ps+i+1)->num /**/) {

flag+=1;

temp=ps[i];ps[i]=ps[i+1];ps[i+1]=temp; }

if(/**/ flag==0 /**/) break; } }

void main() {

int i,size=sizeof(mystudent)/sizeof(STU); clrscr();

printf(\

printf(\ Name age Sex score\\n\\n\

for(i=0;i

printf(\ (mystudent+i)->name,(mystudent+i)->age, (mystudent+i)->sex, (mystudent+i)->score); sort(mystudent,size);

printf(\

printf(\ Name age Sex score\\n\\n\

for(i=0;i

printf(\ (mystudent+i)->name,(mystudent+i)->age, (mystudent+i)->sex,(mystudent+i)->score); getch(); }

1. 1.补充程序Ccon091.C,输入一个3行3列的整型数组,求其最大值和最小值。 如输入: 1 2 3 4 5 6 7 8 9 输出:max=9

min=1

#include\#define ROW 3 #define COL 3 void main(void) {

int a[ROW][COL],i,j,max,min; clrscr();

printf(\ for(i=0;i

for(j=0;j

/**/ max=min=a[0][0]; /**/ for(i=0;i

if(/**/ a[i][j]>max /**/) max=a[i][j]; if(a[i][j]

----------------------------------------------------------------------------------------------------------------------

2. 补充程序Ccon092.C,计算s=1+12+123+1234+12345。

#define N 5

#include void main(void) {

int t=0,/**/ s=0 /**/,i; for(i=1;i<=N;i++) {

t=/**/ i+t*10 /**/; s+=t; }

clrscr();

printf(\ getch(); }

---------------------------------------------------------------------------------------------------------------------- 3. 补充程序Ccon093.C,输出Fibonacci数列的前15项。Fibonacci数列的递推公式是:

fib(n)=1, (n=1,2)

fib(n)=fib(n-1)+fib(n-2), (n>=3)

#include long fib(int n); void main() {

int k; clrscr();

printf(\ for(k=1;k<=15;k++) printf(\ printf(\ getch(); }

long fib(int n) {

if(n==1||n==2) /**/ return 1; /**/ else

return /**/ fib(n-1)+fib(n-2); /**/ }

_______________________________________________________________________________

本文来源:https://www.bwwdw.com/article/38lr.html

Top