当前位置:文档之家› C语言练习2

C语言练习2

C语言练习2
C语言练习2

练习2

一、程序填空共25题(共计250分)

第1题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:计算输出某数的平方值,请填空。

-------------------------------------------------------*/

# include

/**********SPACE*********/

【?】

int main()

{

int x=3, y=5, z;

z = square(x+y);

printf("The square is %d\n", z); return 0;

}

int square(int x)

{

/**********SPACE*********/

return ( 【?】);

}第2题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:用函数实现求2个整型数据中的较大数。

-------------------------------------------------------*/

#include

void main()

{

int x,y; x=10;

y=20;

/***********SPACE***********/

printf("最大值: %d", 【?】(x, y));

}

int max(int a, int b)

{

/***********SPACE***********/

if(【?】)

return a;

/***********SPACE***********/

【?】

return b;

}

第3题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:以下程序的功能是求出所有的水仙花数(水仙花数

是指一个三位数的各个位数字的立方和是这个数本身,

如:153=1^3+5^3+3^3)。

-------------------------------------------------------*/

#include

int f(int n)

{ int j,s,m;

m=n;

/***********SPACE***********/

【?】

while(m!=0)

{

/***********SPACE***********/

【?】

s=s+j*j*j;

m=m/10;

}

if(s==n)

/***********SPACE***********/

【?】

else

return(0);

}

void main()

{

int i;

for(i=100;i<1000;i++)

/***********SPACE***********/

if(【?】==1)

printf("%d is

ok!\n" ,i);

}

第4题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:计算矩形的面积,请填空。

-------------------------------------------------------*/

# include

/**********SPACE*********/

float mul(【?】)

{

return (a*b);

}

int main()

{

float x, y;

scanf("%f%f", &x, &y);

/**********SPACE*********/

printf("%f\n", 【?】);

}第5题(10.0分)

/*------------------------------------------------------- 【程序填空】

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

功能:通过函数的递归调用计算阶乘。

-------------------------------------------------------*/

long power(int n)

{long f;

if(n>1)

/***********SPACE***********/

f=【?】;

else f=1;

return(f);

}

main()

{int n;

long y;

printf("input a inteager number:\n"); /***********SPACE***********/

scanf("%d",【?】);

y=power(n);

/***********SPACE***********/

printf("%d!=%ld\n",n,【?】);

getch();

}第6题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:以下程序的功能:计算并输出300以内最大的10个能被

5和7同时整除的自然数之和。

-------------------------------------------------------*/

#include

/*************SPACE*************/

int sum(【?】)

{

int s=0,n=0;

/*************SPACE*************/

while (k >= 2 && 【?】)

{

/*************SPACE*************/

if (【?】)

{

s=s+k;

n++;

}

k--;

}

/*************SPACE*************/

【?】;

}

void main ( )

{

printf("%d\n", sum(300));

}

第7题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:以下程序的功能是求100-999之间的水仙花数(水仙花数

是指一个三位数的各个位数字的立方和是这个数本身,

如:153=1^3+5^3+3^3)。

-------------------------------------------------------*/

#include

int fun(int n)

{ int i,j,k,m;

m=n;

/***********SPACE***********/

【?】

for(i=1;i<4;i++)

{

/***********SPACE***********/

【?】 m=(m-j)/10;

k=k+j*j*j;

}

/***********SPACE***********/

if(k==n) 【?】

else return(0);}

void main()

{

int i;

for(i=100;i<1000;i++)

/***********SPACE***********/

if(【?】==1)printf("%d is ok!\n" ,i); }

第8题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:以下程序的功能:计算并输出500以内最大的10个能被

13或17整除的自然数之和。

-------------------------------------------------------*/

#include

/***********SPACE***********/

int fun(【?】 )

{

int m=0, mc=0;

/***********SPACE***********/

while (k >= 2 && 【?】)

{

/***********SPACE***********/

if (k%13 == 0 || 【?】)

{ m = m+ k; mc++; }

k--;

}

/***********SPACE***********/

【?】;

}

void main ( )

{

printf("%d\n", fun (500));

}

第9题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:输入N个数据存入数组中,将其倒置存放,并打印输出。

-------------------------------------------------------*/

#include

#define N 10

void main( )

{ int i, t, a[N];

printf("Enter %d Numbers:\n", N);

for(i=0;i

/***********SPACE***********/

scanf("%d",【?】);

/***********SPACE***********/

for(i=0;i<【?】;i++)

{ t=a[i];

/***********SPACE***********/

a[i]=【?】;

a[N-i-1]=t;

}

for(i=0;i

printf("%d ",a[i]);

}第10题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:以下程序的功能是输入字符串,再输入一个字符,将字符串

中与输入字符相同的字符删除。-------------------------------------------------------*/

#include "stdio.h"

void fun(char a[],char c)

{

int i,j;

/***********SPACE***********/

for(i=j=0; 【?】;i++)

if(a[i]!=c) a[j++]=a[i];

/***********SPACE***********/

【?】;

}

main()

{

char a[20],cc;

/***********SPACE***********/

【?】;

cc=getchar();

/***********SPACE***********/

【?】;

puts(a);

}

第11题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:以下程序的功能是删除字符串中的指定字符,字符串和

要删除的字符均由键盘输入。

-------------------------------------------------------*/

#include "stdio.h"

void main()

{

char str[80],ch;

int i,k=0;

/***********SPACE***********/

gets(【?】);

ch=getchar();

/***********SPACE***********/

for(i=0;str[i] 【?】;i++)

/***********SPACE***********/

if(str[i]!=ch) {【?】;k++;}

/***********SPACE***********/

【?】;

puts(str);

}

第12题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:求数组中的最大值。

程序中有4个空,填空使程序完整。

-------------------------------------------------------*/

#include

int imax(int, int);

void main(void)

{

int a[10],m,i;

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

/***********SPACE***********/

scanf("%d",【?】);

m=a[0];

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

/***********SPACE***********/

m=imax(m,【?】); printf("max=%d\n",m);

}

/***********SPACE***********/

int imax(【?】)

{

int z;

if(x>y) z=x;

else z=y;

/***********SPACE***********/

return 【?】; }

第13题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:以下程序的功能是产生并输出如下形式的方阵。

1 2 2 2 2 2 1

3 1 2 2 2 1 4

3 3 1 2 1

4 4

3 3 3 1

4 4 4

3 3 1 5 1

4 4

3 1 5 5 5 1 4

1 5 5 5 5 5 1

-------------------------------------------------------*/

main()

{

int a[7][7];

int i,j;

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

for (j=0;j<7;j++)

{

/***********SPACE***********/

if (【?】) a[i][j]=1;

/***********SPACE***********/

else if (i

else if (i>j&&i+j<6) a[i][j]=3;

/***********SPACE***********/

else if (【?】) a[i][j]=4;

else a[i][j]=5;

}

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

{

for (j=0;j<7;j++)

printf("%4d",a[i][j]);

/***********SPACE***********/

【?】;

}

}

第14题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:以下程序的功能是删除一个字符串中的所有数

字字符。

-------------------------------------------------------*/

#include "stdio.h"

void delnum(char *s)

{

int i,j;

/***********SPACE***********/

for(i=0,j=0; 【?】'\0' ;i++)

/***********SPACE***********/

if(s[i]<'0'【?】 s[i]>'9')

/***********SPACE***********/

{【?】;j++;}

s[j]='\0';

}

main ()

{

char item[100];

printf("\n input a string:\n");

gets(item);

/***********SPACE***********/

【?】;

printf("\n%s",item);

}

第15题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:求出二维数组中的最大元素值。-------------------------------------------------------*/

#include "stdio.h"

int max_value(int m,int n,int array[][4]); int main()

{

int

a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}} ;

/***********SPACE***********/

printf("max value is %d\n",【?】); return 0;

}

int max_value(int m,int n,int array[][4]) {

int i,j, max;

/***********SPACE***********/

max=【?】;

for(i=0;i

for(j=0;j

/***********SPACE***********/

if(max

return(max);

}第16题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:以下程序的功能是将一个字符串中的前N个字符复制到

一个字符数组中去,不许使用strcpy函数。

-------------------------------------------------------*/

main ( )

{

char str1[80],str2[80];

int i,n;

/***********SPACE***********/ gets(【?】); scanf("%d",&n);

/***********SPACE***********/ for (i=0; 【?】 ;i++) /***********SPACE***********/ { 【?】 ;}

/***********SPACE***********/ 【?】 ;

printf("%s\n",str2); }

第17题 (10.0分)

/*------------------------------------------------------- 【程序填空】

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

题目:有一个5*5的方阵,求主对角线上最小元素的值。

程序中有4个空,填空使程序完整。

-------------------------------------------------------*/ #include

/***********SPACE***********/ 【?】;

void main (void) {

int i,j,imin,a[5][5]; small(a); for(i=0;i<5;i++)

for(j=0;j<5;j++) /***********SPACE***********/

scanf("%d", 【?】); imin=small(a);

printf("min=%d\n",imin); }

int small(int b[][5]) /* 定义函数,形参省略第一维长度 */ {

int i,im;

/***********SPACE***********/ im= 【?】; for (i=0;i<5;i++)

/***********SPACE***********/ if (im>b[i][i]) 【?】; return (im); }

第18题 (10.0分)

/*------------------------------------------------------- 【程序填空】

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

功能:数组名作为函数参数,求平均成绩。 -------------------------------------------------------*/

float aver(float a[ ]) /*定义求平均值函数,形参为一浮点型数组名*/ {int i;

float av,s=a[0]; for(i=1;i<5;i++)

/***********SPACE***********/ s+=【?】[i]; av=s/5;

/***********SPACE***********/ return 【?】; }

void main() {float sco[5],av; int i;

printf("\ninput 5 scores:\n"); for(i=0;i<5;i++)

/***********SPACE***********/ scanf("%f",【?】);

/***********SPACE***********/ av=aver(【?】);

printf("average score is %5.2f\n",av); getch();

}第19题 (10.0分)

/*------------------------------------------------------- 【程序填空】

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

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

题目:已定义一个含有30个元素的数组s,函数fun1的功能是按

顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序

每五个元素求一个平均值, 并将该值存放在数组w中。

程序中有4个空,填空使程序完整。

-------------------------------------------------------*/

#include

float s[30],w[6];

fun1(float s[])

{

int k,i;

for(k=2,i=0;i<30;i++)

{

/***********SPACE***********/

【?】

k+=2;

}

}

fun2(float s[],float w[])

{

float sum=0.0;

int k,i;

for(k=0,i=0;i<30;i++)

{

sum+=s[i];

/***********SPACE***********/

【?】

{

w[k]=sum/5;

/***********SPACE***********/

【?】

k++;

}

}

}

main()

{int i; fun1(s);

/***********SPACE***********/

【?】

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

{

if(i%5==0) printf("\n");

printf("%8.2f",s[i]);

}

printf("\n");

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

printf("%8.2f",w[i]);

}

第20题(10.0分)

/*----------------------------------------------------------

【程序填空】

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

题目:找出一维数组中的最小值元素及其下标。

------------------------------------------------------------*/

#include

#define N 10

void main()

{

int a[N],i,min,p;

for(i=0;i

/*************SPACE*****************/

scanf("%d",【?】);

/*************SPACE*****************/

min=【?】;

p=0;

for(i=1;i

/*************SPACE*****************/

if(【?】)

{

min=a[i];

/*************SPACE*****************/

【?】;

}

printf("最小值为:%d,下标

为:%d\n",min,p);

}

第21题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:输出两个整数中大的那个数,两个整数由键盘输入。

-------------------------------------------------------*/

#include "stdio.h"

void main()

{int a,b,*p1,*p2;

/***********SPACE***********/

p1=【?】malloc(sizeof(int));

p2=(int*)malloc(sizeof(int));

/***********SPACE***********/

scanf("%d%d",【?】,p2);

if(*p2>*p1)*p1=*p2;

free(p2);

/***********SPACE***********/

printf("max=%d\n",【?】);

}

第22题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:找出数组中最大值和此元素的下标,数组元素的值由键盘

输入。

-------------------------------------------------------*/

#include "stdio.h"

void main()

{int a[10],*p,*s,i;

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

/***********SPACE***********/

scanf("%d", 【?】);

/***********SPACE***********/ for(p=a,s=a;【?】<10;p++)

/***********SPACE***********/

if(*p【?】*s)s=p;

/***********SPACE***********/

printf("max=%d,index=%d\n",【?】,s-a);

}第23题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:输入数组,最大的与最后一个元素交换,最小的与第一个元

素交换,输出数组。

-------------------------------------------------------*/

main()

{

int number[10];

input(number);

max_min(number);

output(number);

}

input(int number[])

{int i;

/***********SPACE***********/

for(i=0;【?】;i++)

scanf("%d,",&number[i]);

scanf("%d",&number[9]);

}

max_min(int array[])

{int *max,*min,k,l;

int *p,*arr_end;

arr_end=array+10;

max=min=array;

for(p=array+1;p

if(*p>*max) max=p;

/***********SPACE***********/

else if(*p<*min) 【?】;

*p=array[0];

array[0]=*min;

/***********SPACE***********/

【?】;

*p=array[9];

/***********SPACE***********/

【?】;

*max=*p;

return;

}

output(int array[])

{int *p;

for(p=array;p

printf("%d,",*p);

printf("%d\n",array[9]);

}

第24题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:通过调用swap函数来实现交换两个变量的值。

-------------------------------------------------------*/

#include

/***********SPACE***********/

void swap(【?】)

{ int t;

t=*a;

/***********SPACE***********/

【?】;

*b=t;

}

void main()

{

int x,y;

x=10;

y=20;

printf("Before swapping:x=%d,

y=%d\n",x,y);

/***********SPACE***********/

swap(【?】);

printf("After swapping:x=%d, y=%d\n",x,y);

}

第25题(10.0分)

/*-------------------------------------------------------

【程序填空】

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

题目:输入3个数a,b,c,按大小顺序输出。

-------------------------------------------------------*/

main()

{

int n1,n2,n3;

int *pointer1,*pointer2,*pointer3;

printf("please input 3 number:n1,n2,n3:"); scanf("%d,%d,%d",&n1,&n2,&n3);

pointer1=&n1;

pointer2=&n2;

pointer3=&n3;

/***********SPACE***********/

if(【?】) swap(pointer1,pointer2);

/***********SPACE***********/

if(【?】) swap(pointer1,pointer3);

/***********SPACE***********/

if(【?】) swap(pointer2,pointer3);

printf("the sorted numbers

are:%d,%d,%d\n",n1,n2,n3);

}

/***********SPACE***********/

swap(【?】)

{

int p;

p=*p1;*p1=*p2;*p2=p;

}

二、程序设计共33题(共计330分)

第1题(10.0分)

/*------------------------------------------------

【程序设计】

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

题目:请编写函数fun,它的功能是:判断m是否为素数

。主函数的功能是:求出100到200之间的素数的

个数。

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

注意:部分源程序给出如下。请勿改动主函数main 和其

它函数中的任何内容,仅在函数fun的花括号中填

入所编写的若干语句。

------------------------------------------------*/

#include "stdio.h"

int fun(int m);

void main()

{

int m,k=0;

for(m=100;m<200;m++)

if(fun(m))

{

printf("%4d",m);

k++;

if(k%5==0)

printf("\n");

}

printf("k=%d\n",k);

yzj();

}

int fun(int m)

{

/**********Program**********/ /********** End **********/

}

yzj()

{

FILE *IN,*OUT;

int iIN,iOUT,i;

IN=fopen("12.in","r");

if(IN==NULL)

{printf("Please Verify The Currernt Dir..It May Be Changed");

}

OUT=fopen("12.out","w");

if(OUT==NULL)

{printf("Please Verify The Current Dir.. It May Be Changed");

}

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

{ fscanf(IN,"%d",&iIN);

iOUT=fun(iIN);

fprintf(OUT,"%d\n",iOUT);

}

fclose(IN);

fclose(OUT);

}第2题(10.0分)

/*------------------------------------------------

【程序设计】

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

题目:编写函数判断一个整数能否同时被3和5整除,

若能则返回值为1,否则为0。调用该函数求

出15~300之间能同时被3和5整除的数的个数。

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

注意:部分源程序给出如下。请勿改动主函数

main和其它函数中的任何内容,仅在函

数的花括号中填入所编写的若干语句。

------------------------------------------------*/

#include "stdio.h"

int sum(int n)

{

/**********Program**********/

/********** End **********/

}

main()

{int i,s=0;

for(i=15;i<=300;i++)

if(sum(i)==1) s=s+1;

printf("s=%d\n",s);

yzj();

getch();

}

yzj()

{

FILE *IN,*OUT;

int n;

int i[12];

int o;

IN=fopen("in.dat","r");

if(IN==NULL)

{printf("Read File Error");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{printf("Write File Error");

}

for(n=0;n<5;n++)

{

fscanf(IN,"%d",&i[n]);

}

for(n=0;n<5;n++)

{

o = sum(i[n]); fprintf(OUT,"%d\n",o);

}

fclose(IN);

fclose(OUT);

}

第3题(10.0分)

/*------------------------------------------------

【程序设计】

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

题目:从键盘输入一个大于3的整数,调用函数fun 判断

其是否素数,然后在main函数中输出相应的结论

信息。例如:7是素数,8不是素数。请编写fun函

数。素数是仅能被1和自身整除的数

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

注意:部分源程序给出如下。请勿改动主函数main 和其

它函数中的任何内容,仅在函数fun的花括号中填

入所编写的若干语句。

------------------------------------------------*/

#include "stdio.h"

void main()

{

int m,flag;

printf("input an integer:");

scanf("%d",&m);

flag=fun(m);

if(flag)

printf("%d is a prime.\n",m);

else

printf("%d is not a prime.\n",m);

yzj();

}

int fun(int n)

{

/**********Program**********/

/********** End **********/

}

yzj()

{

FILE *IN,*OUT;

int iIN,iOUT,i;

IN=fopen("5.in","r");

if(IN==NULL)

{printf("Please Verify The Currernt Dir..It May Be Changed");

}

OUT=fopen("5.out","w");

if(OUT==NULL)

{printf("Please Verify The Current Dir.. It May Be Changed");

}

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

{ fscanf(IN,"%d",&iIN);

iOUT=fun(iIN);

fprintf(OUT,"%d\n",iOUT);

}

fclose(IN);

fclose(OUT);

}第4题(10.0分)

/*------------------------------------------------

【程序设计】

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

题目:调用函数fun判断一个三位数是否"水仙花数"。

在main函数中从键盘输入一个三位数,并输

出判断结果。请编写fun函数。所谓"水仙花

数"是指一3位数,其各位数字立方和等于该

数本身。

例如,153是一个水仙花数,因为

153=1+125+27。

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

注意:部分源程序给出如下。请勿改动主函数main 和其它函数中的任何内容,仅在函数fun的花

括号中填入所编写的若干语句。

------------------------------------------------*/

#include "stdio.h"

int fun(int n)

{

/**********Program**********/

/********** End **********/

}

void main()

{

int n,flag;

scanf("%d",&n);

flag=fun(n);

if(flag)

printf("%d 是水仙花数\n",n);

else

printf("%d 不是水仙花数\n",n);

getch();

yzj();

}

yzj()

{

FILE *IN,*OUT;

int iIN,i;

int iOUT;

IN=fopen("in.dat","r");

if(IN==NULL)

{printf("Please Verify The Currernt Dir..It May Be Changed");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{printf("Please Verify The Current Dir.. It May Be Changed");

}

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

{ fscanf(IN,"%d",&iIN);

iOUT=fun(iIN);

fprintf(OUT,"%d\n",iOUT);

}

fclose(IN);

fclose(OUT);

}

第5题(10.0分)

/*------------------------------------------------

【程序设计】

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

题目:编写函数fun,函数的功能是:求给定正整数m以

内(包括m)的素数之和。

例如:当m=20时,函数值为77。

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

注意:部分源程序给出如下。请勿改动主函数main 和其

它函数中的任何内容,仅在函数fun的花括号中填

入所编写的若干语句。

------------------------------------------------*/ #include "stdio.h"

int fun(int m)

{

/**********Program**********/

/********** End **********/

}

void main()

{

int y;

y=fun(20);

printf("y=%d\n",y);

yzj();

}

yzj()

{

FILE *IN,*OUT;

int iIN,iOUT,i;

IN=fopen("20.in","r");

if(IN==NULL)

{printf("Please Verify The Currernt Dir..It May Be Changed");

}

OUT=fopen("20.out","w");

if(OUT==NULL)

{printf("Please Verify The Current Dir.. It May Be Changed");

}

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

{ fscanf(IN,"%d",&iIN);

iOUT=fun(iIN);

fprintf(OUT,"%d\n",iOUT);

}

fclose(IN);

fclose(OUT);

}第6题(10.0分)

/*------------------------------------------------

【程序设计】

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

题目:编写函数fun,函数的功能是:求1到

m之间(包括m)的偶数之积。

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

注意:部分源程序给出如下。请勿改动主函数

main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。------------------------------------------------*/

#include

double fun(int m)

{

/**********Program**********/

/********** End **********/

}

void main()

{

printf("ji=%lf\n",fun(20));

yzj();

}

yzj()

{

FILE *IN,*OUT;

int iIN,i;

double dOUT;

IN=fopen("in.dat","r");

if(IN==NULL) {printf("Please Verify The Currernt Dir..It May Be Changed");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{printf("Please Verify The Current Dir.. It May Be Changed");

}

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

{fscanf(IN,"%d",&iIN);

dOUT=fun(iIN);

fprintf(OUT,"%f\n",dOUT);

}

fclose(IN);

fclose(OUT);

}

第7题(10.0分)

/*------------------------------------------------

【程序设计】

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

题目:编写函数判断一个整数m的各位数字之和能否被7整除, 可以被7整除则返回1,否则

返回0。调用该函数找出100~200之间满足

条件的所有数。

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

注意:部分源程序给出如下。请勿改动主函数

main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。

------------------------------------------------*/

#include "stdio.h"

int sub(int m)

{

/**********Program**********/

/********** End **********/

}

void main()

{ int i;

for(i=100;i<=200;i++)

if(sub(i)==1)printf("%4d",i);

yzj();

getch();

}

yzj()

{

FILE *IN,*OUT;

int n;

int i[10];

int o;

IN=fopen("in.dat","r");

if(IN==NULL)

{printf("Read File Error");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{printf("Write File Error");

}

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

{

fscanf(IN,"%d",&i[n]);

}

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

{

o=sub(i[n]);

fprintf(OUT,"%d\n",o);

}

fclose(IN);

fclose(OUT);

}

第8题(10.0分)

/*------------------------------------------------ 【程序设计】

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

题目:编写函数求1~100中奇数的平方和。

结果为166650。

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

注意:部分源程序给出如下。请勿改动主函数

main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。

------------------------------------------------*/

#include "stdio.h"

float sum(int n)

{

/**********Program**********/

/********** End **********/

}

main()

{

printf("sum=%f\n",sum(100));

yzj();

getch();

}

yzj()

{

FILE *IN,*OUT;

int n;

int i;

float o;

IN=fopen("in.dat","r");

if(IN==NULL)

{printf("Read File Error");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{printf("Write File Error"); }

fscanf(IN,"%d",&i);

o=sum(i);

fprintf(OUT,"%f\n",o);

fclose(IN);

fclose(OUT);

}

第9题(10.0分)

/*------------------------------------------------

【程序设计】

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

题目:调用函数fun判断一个三位数是否"水仙花数"。

在main函数中从键盘输入一个三位数,并输出判

断结果。请编写fun函数。所谓"水仙花数"是指一

个3位数,其各位数字立方和等于该数本身。

例如,153是一个水仙花数,因为

153=13+53+33。

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

注意:部分源程序给出如下。请勿改动主函数main 和其

它函数中的任何内容,仅在函数fun的花括号中填

入所编写的若干语句。

------------------------------------------------*/

#include "stdio.h"

int fun(int n)

{

/**********Program**********/ /********** End **********/

}

void main()

{

int n,flag;

scanf("%d",&n);

flag=fun(n);

if(flag)

printf("%d 是水仙花数\n",n);

else

printf("%d 不是水仙花数\n",n);

yzj();

}

yzj()

{

FILE *IN,*OUT;

int iIN,i;

int iOUT;

IN=fopen("2.in","r");

if(IN==NULL)

{printf("Please Verify The Currernt Dir..It May Be Changed");

}

OUT=fopen("2.out","w");

if(OUT==NULL)

{printf("Please Verify The Current Dir.. It May Be Changed");

}

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

{ fscanf(IN,"%d",&iIN);

iOUT=fun(iIN);

fprintf(OUT,"%d\n",iOUT);

}

fclose(IN);

fclose(OUT);

}第10题(10.0分)

/*------------------------------------------------

【程序设计】

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

题目:编写函数fun其功能是: 计算出k以内最大的10个能被13或17整除的自然数之和。

(k〈3000)

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

注意:部分源程序给出如下。请勿改动主函数main 和其它函数中的任何内容,仅在函数fun的花

括号中填入所编写的若干语句。

------------------------------------------------*/

#include "stdio.h"

#include"conio.h"

int fun(int k)

{

/**********Program**********/

/********** End **********/

}

main()

{int m;

printf("Enter m: ");

scanf("%d", &m);

printf("\nThe result is %d\n", fun(m)); yzj();

getch();

}

yzj() {

FILE *IN,*OUT;

int s ;

int t;

int o;

IN=fopen("in.dat","r");

if(IN==NULL)

{printf("Read File Error");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{printf("Write File Error");

} for(s=1;s<=5;s++)

{ fscanf(IN,"%d",&t);

o=fun(t);

fprintf(OUT,"%d\n",o);

}

fclose(IN);

fclose(OUT);

}

第11题(10.0分)

/*------------------------------------------------

【程序设计】

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

题目:编写函数求表达式的和(n的值由主函数输入)。

1-1/2+1/3-1/4+......+1/m

n的值为20时,表达式的值为0.668771。--------------------------------------------------

注意:部分源程序给出如下。请勿改动主函数

main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。

------------------------------------------------*/

#include "stdio.h"

float sum(int n)

{

/**********Program**********/

/********** End **********/

}

main()

{int n;

scanf("%d",&n);

printf("sum=%f\n",sum(n));

yzj();

getch();

}

yzj()

{

FILE *IN,*OUT;

int m,n;

int i[10];

float o;

IN=fopen("in.dat","r");

if(IN==NULL)

{printf("Read File Error");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{printf("Write File Error");

}

for(n=0;n<5;n++)

fscanf(IN,"%d",&i[n]);

for(n=0;n<5;n++)

{

o = sum(i[n]);

fprintf(OUT,"%f\n",o);

}

fclose(IN);

fclose(OUT);

}

第12题(10.0分)

/*------------------------------------------------ 【程序设计】

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

题目:编写函数fun求N以内所有m的倍数之和。

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

注意:部分源程序给出如下。请勿改动主函数

main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。------------------------------------------------*/

#define N 1000

#include "stdio.h"

int fun(int m)

{

/**********Program**********/

/********** End **********/

}

void main()

{int sum;

sum=fun(7);

printf("%d以内所有%d的倍数之和

为:%d\n",N,7,sum);

yzj();

}

yzj()

{

FILE *IN,*OUT;

int n;

int i[10];

int o;

OUT=fopen("out.dat","w");

if(OUT==NULL)

{printf("Write File Error");

}

o = fun(6);

fprintf(OUT,"%d\n",o);

fclose(OUT);

}

第13题(10.0分)

/*------------------------------------------------

【程序设计】

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

题目:编写函数fun求1!+2!+3!+ …… +n!的和,在

main函数中由键盘输入n值,并输出运算结果。请

编写fun函数。

例如:若n值为5,则结果为153.000000。

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

注意:部分源程序给出如下。请勿改动主函数main 和其

它函数中的任何内容,仅在函数fun的花括号中填

入所编写的若干语句。

------------------------------------------------*/

#include

float fun(int n)

{

/**********Program**********/

/********** End **********/ }

void main()

{

int i,n;

float result;

scanf("%d",&n);

result=fun(n);

printf("%f\n",result);

yzj();

}

yzj()

{

FILE *IN,*OUT;

int i;

int iIN;

long int iOUT;

IN=fopen("1.in","r");

if(IN==NULL)

{printf("Please Verify The Currernt Dir..It May Be Changed");

}

OUT=fopen("1.out","w");

if(OUT==NULL)

{printf("Please Verify The Current Dir.. It May Be Changed");

}

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

{ fscanf(IN,"%d",&iIN);

iOUT=fun(iIN);

fprintf(OUT,"%ld\n",iOUT);

}

fclose(IN);

fclose(OUT);

}第14题(10.0分)

/*------------------------------------------------

【程序设计】

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

题目:请编写一个函数fun,函数的功能是:统计出若干

个学生的平均成绩,最高分以及得最高分的

C语言练习2(选择和循环结构)

C语言(分支和循环结构) 一、选择题 1.以下程序输出结果是( ) main() { int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--);} A)7 B)6 C)5 D)4 2以下程序的输出结果为( ) # include main ( ) { int i=0, j=0, a=6; if ((++i>0)&&(++j>0)) a++; printf ("i=%d, j=%d, a=%d\n", i,j,a);} A) i=0, j=0, a=6 B) i=1, j=1, a=7 C) i=1, j=0, a=7 D) i=0, j=1, a=7 3有如下程序 main() { int a=2,b=-1,c=2; if(a

4若i为int型,且有程序如下,则输出结果是( ) i=111; if(i%3==0) printf("####"); printf("****"); A) #### B) **** C) ####**** D) 无输出结果 5若运行时x=12,则运行结果为( ) {int x, y; scanf("%d", &x); y=x>12 ? x+10:x-12; printf("%d\n", y);} A) 0 B) 22 C) 12 D) 10 6以下程序的输出结果是( ) main() { int i=0, j=0, k=6; if ((++i>0)||(++j>0)) k++; printf("%d, %d, %d\n", i, j, k); } A) 0, 0, 6 B) 1, 0, 7 C) 1, 1, 7 D) 0, 1, 7 7若变量都已正确说明,则以下程序段输出为( ) int a=1,b=2,c=3; if(a>b) a=b; b=c; c=a; printf("a=%d b=%d c=%d\n",a,b,c);

C语言期末考试真题

第五套 一、判断题 1.(F)在一个c程序中,main函数必须出现在所有函数之前。 2.(F)#include”stdio.h”是每个程序中必须写的。 3.(F)c程序总是从程序的第一条语句开始执行的。 4.(F)以下各数均不是合法的八进制数:256,03A2,-0127。 5.(F)语句scanf(“%7.2f”,&a):是一个合法的scanf函数。 6.(T)整数-32100可以赋值给int型和long int型变量。 7.(F)表达式(j=3,j++)的值是4. 8.(F)在c程序中,赋值运算符的优先级最低。 9.(F)7&3+12的值是15. 10.(F)若a是实型变量,在执行了a=5后,a将变为整型变量。 11.(F)若有i=10,j=2:则执行完i*=j+8:后i的值是28. 12.(F)若a是实型变量,c程序中允许以下赋值a=10:因此实型变量中允许存放整型变量。 13.(T)在c语言中,逻辑“真”等价于不等于0的数。 14.(F)开关语句switch最多可以形成3个分支. 15.(T)Int a=1,b=2,c=3:if(a>c)b=a:a=c:c=b:则c的值是2. 16.(T)Int i=3,j=5:if(i>j):是正确的。 17.(F)若有i=10,j=0:则执行完语句if(j=0):i++:elsei --:i的值为11 18.(T)break语句只能用于循环语句switch-case语句中。 19.(T)若有说明int c:则while(c=getchar()):是正确的c语句。 20.(T)Int a[10]:for(i=1:i<10:i++)a[i-1]=i:能使数组元素分别取值{1,2,3,4,5,6,7,8,9,10}. 21.(F)二维数组在内存中储存以列为主序方式存放。 22.(T)c程序中#include和#define均不是c语句 23.(F)通过return语句,函数可以带回一个或一个以上的返回值 24.(T)在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量 25.(T)对结构体类型的变量的成员可以象普通变量一样参与各种运算 二、选择题 1.(A)是构成c语言程序的基本单位。 A函数 B变量 C子程序 D语句 2.(B)以下叙述中正确的是 A.c语言的源程序不必通过遍译就可以直接运行。 B.语言中的每条可执行语句最终都将被转换成二进制的机器指令 C.c源程序经编译形成的二进制代码可以直接运行

C语言试卷2及答案

扬州大学试题纸 系课程 C语言程序设计(A)卷2002—2003学年第2学期 班级_________学号________姓名__________得分___________ 一、选择题(每题分,共30分): 1、已知:char a; int b; float c; double d; 则执行语句:c=a+b+c+d; 后,变量c的类型为。 A. char B. int C. float D. double 2、已有定义int x; float y; 且执行scanf(“%2d%f”,&x,&y);语句时, 从第一列开始输入数据12345 67<回车>,则y的值是。 A. 无定值 B. 345.00000 C. D. 3、设有以下程序段 int x=0; s=0; while (!x!=0) s+=++x; printf(“%d”,s); 则。 A. 运行程序段后输出0 B. 运行程序段后输出1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次 4、若i为整型变量,则以下循环执行次数是。 for(i=2; i==0;) printf(“%d”, i--); A. 无限次 B. 2次 C. 1次次 5、假设char ch=’a’, *p=&c h; ,以下语句中,有语法错误的是 . A. (*p)++; B. ch+=—‘a’+’A’; C. toupper(ch)=ch; D. ch++; 6、若说明:char *language[ ]={“VFP”,”C”,”VB”,”VC”,”JAVA”}; 则language[2]的值是。 A. 一个字符 B. 一个地址 C. 一个字符串 D. 一个不定值 7、C语言程序中,当调用函数时。 A. 实参和虚参可以共用存储单元 B. 实参和虚参各占一个独立的存储单元 C. 可以由用户指定是否共用存储单元 D. 由计算机系统自动确定是否共用存储单元 8、在程序中要使用语句:printf(“%s\n”, STRING); 输出提示信息:“OK! ”(包括双引号),则应使用宏定义语句。 A. #define STRING “OK!” B. #define STRING “”OK!”” C. #define STRING \”OK!\” D.以上三个答案都是错误的 9、数组和链表都可以用于存储一组数据,以下说法不正确的是_____________。 A. 数组占用连续的一块存储区域,链表可能占用若干不连续的存储区域 B. 数组和链表所占用的存储区域均不能在程序运行期间动态分配 C. 数组中的数据可以随机存取或顺序存取,链表中的数据只能顺序存取 D. 数组的长度是固定的,链表的长度是不固定的。 10、已知语句FIL E *fp; char ch= ‘c’;fp=fopen(“”,”w”);如果需要将ch的值保存到一个磁盘文件中,

c语言循环结构上机习题

c语言循环结构上机习 题 标准化工作室编码[XX968T-XX89628-XJ668-XT689N]

1、计算n的阶乘(n!),n的取值在1~10之间。分别使用while、do…while和for语句实现。(三个程序) 给循环变量赋初值 循环条件 循环体 循环变量的增值 2、输入一行字符,分别统计输入了多少个字母、数字、空格和其他字符。 3、假设函数f(x)=3x2+2x+1,试利用for循环语句分别求出1<=x<=9的f(1)~f(9)各函数值。 4、有分数序列2/1,3/2,5/3,8/5,13/8,21/13…求这个数列的前20项和。 (分析提示:每个分子等于前一个数据分子与分母的和,每个分母等于前一个数据的分子) 5、输出显示1~100之间可以被n整除的所有整数,运行时n由键盘输入。要求每一行显示5个数,并且统计一共有多少个整数能被n整除。 6、下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。

main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while( ① ) { if(x>amax) amax=x; if( ② ) amin=x; scanf("%f",&x); } printf("\namax=%f\namin=%f\n",amax,amin);} 7、使用循环语句输出以下图形 8、有一个数学等式:AB*CD=BA*DC,式中的一个字母代表一位数字,试找出所有符合上述要求的乘积式并打印输出。 8、一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少)。 分析:

C语言期末考试模拟试题及答案

重点看后面的起泡法排序和找最大最小值。那些问结果的奇怪的代码,随意。 C语言期末考试试题 2008年04月12日星期六00:22 一选择题(24分,每小题2分) 1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是()。 A存放读入数据项的存储区 B存放读入数据的地址或指向此地址的指针 C一个指向所读文件的文件指针 D一个整形变量,代表要读入的数据项总数 )。 2.以下程序的输出结果为( main() { int i=010,j=10; printf("%d,%d\n",i++,j--); } A11,9 B9,10 C8,10 D9,9 3.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=20.0/3; a=(int)125.521%4; a=5<<2; A125,6,31,1 B125,6,1,20 C125,6.666666,31,20 D125.534,6.666666,2,20 )。 4.设i和k都是int类型,则for循环语句( for(i=0,k=-1;k=1;i++,k++) printf("****\n"); A循环结束的条件不合法 B循环体一次也不执行

C循环体只执行一次 D是无限循环 5.以下程序的输出结果为(main() { char c; int i; )。 }for(i=65;i<68;i++) { c=i+32; switch(c) { case'a': case'b': case'c':printf("%c,",c);break; default:printf("end"); } } A a,b,c,end B a,a,a,end C a,a,a, D a,b,c, 6.函数调用语句:fseek(fp,-10L,2);的含义是()。 A将文件位置指针从文件末尾处向文件头的方向移动10个字节B将文件位置指针从当前位置向文件头的方向移动10个字节C将文件位置指针从当前位置向文件末尾方向移动10个字节D将文件位置指针移到距离文件头10个字节处 7.以下程序的输出结果为( main() { int i=0,j=0; while(s1[i]!='\0') i++; while(s2[j]!='\0') s1[i++]=s2[j++]; s1[i]=0; )。

C语言模拟试卷2(带答案)

,. 单选题: 1、执行下面的程序段后,变量k中的值为 s[0]=k; k=s[1]*10; A. 不定值 B. 33 C. 30 D. 10 答案: A 2、设有以下定义: #define N 3 #define Y(n) ( (N+1)*n) 则执行语句:z=2 * (N+Y(5+1));后,z的值为_______.2*(3+ (4*5+1) A. 出错 B. 42 C. 48 D. 54 答案: C 3、若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是____ A. 1 B. 2 C. 2.0 D. 2.5 答案: c 4、请选出以下语句的输出结果____ printf("%d\n",strlen("\t\ 065\xff\n")) A. 5 B. 4 C. 8 D. 输出项不合法,无正常输出 答案: B 5、为避免嵌套的条件分支语句if…else的二义性,C语言规定,C 程序中的 else总是与____组成配对关系。 A. 其上面距它最近的,并且没有其他else与其配对的if相配对 B. 在同一行上的if C. 缩排位置相同的if D. 在其之前未配对的if 答案: A 6、若X和Y都是int型变量,X=100,Y=200,且有下面的程序片段: printf("%d",(X,Y)); 上面程序片段的输出结果是 A. 200 B. 100 C. 100 200 D. 输出格式符不够,输出不确定的值 答案: A 7、请读程序片段(字符串内没有空格字符): printf("%d\n", strlen("ATS\n012\1\\")); 上面程序片段的输出结果是 A. 11 B. 9 C. 10 D. 8 答案: B 8、设有以下程序段 int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s); 则______ A. 运行程序段后输出0 B. 运行程序段后输出1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次 答案: B 9、阅读下列程序: main( ) { int n[3],i,j,k; for(i=0;i〈3;i++) n[i]=0; k=2; for (i=0;i < k;i++) i=0: n[0]=1,n[1]=2 i=1: =3 =3 for (j=0;j〈2;j++) n[j]=n[i]+1; printf("%d\n",n[1]); } 下述程序运行后输出结果是 A. 2 B. 1 C. 0 D. 3 答案: D 10、输入一个华氏温度,要求输出摄氏温度。计算公式为: c=5/9(F-32),以下程序正确的是() A. main() { float c,F; scanf("%f,%f",&c,&F); c=5/9*(F-32); printf("摄氏温度是:%f\n",c); }

C语言基础练习题(含答案)

C语言基础练习题(含答案)

第一章C语言基础知识 1.1 选择题 1. 以下不是C语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D.-_ok 3.正确的C语言标识符是()。 A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3C.For D.2a define _123 -abc DO WORD IF Case sizeof 5.下列符号中,不属于转义字符的是()。 A.\\ B.\0xAA C.\t D.\0 6.不属于C语言关键字的是()。 A.int B.break C.while D.character 7.是C语言提供的合法关键字的是()。 A.Float B.signed

B .一组机器语言指令 C .将C 源程序编译成目标程序 D .由制造厂家提供的一套应用软件 14.以下选项中,合法的用户标识符是( )。 A .long B ._2abc C .3dmax D .A.dat 15.以下选项中,合法的实型常数是( )。 A .5E2.0 B .E-3 C .2E0 D .1.3E 16.已知大写字母A 的ASCII 码值是65, 小写字母a 的ASCII 码是97,则用八进制表示的字符常量’\101’是( )。 A .字符A B .字符a C .字符c D .非法的 常量 17.以下选项中, 合法转义字符的选项是( )。 A .’\\’ B .’\018’ C .’xab ’ D .’\abc ’ 18.以下选项中,正确的字符常量是( )。 A .”F ” B .’\\’’ C .’W ’ D .’’ 19.以下选项中可作为C 语言合法整数的是 A .10110 B B .0386 C .0Xffa D .x2a2 20.下列变量定义中合法的是 A .short _a=1-.le-1; B .double b=1+5e2.5; C .long do=0xfdaL; D .float 2_and=1-e-3; 21.与数学式子1 29 x x n 对应的C 语言表达式是( )。 A .9*x^n/(2*x-1) B .9*x**n/(2*x-1) C .9*pow(x,n)*(1/(2*x-1)) D .9*pow(n,x)/(2*x-1) 22.若有代数式cd ab 3,则不正确的C 语言表达式是( )。

C语言循环结构练习题带答案

第5章循环结构程序设计 练习题 1. 单项选择题 (1)语句while (!e);中的条件!e等价于 A 。 A. e==0 B. e!=1 C. e!=0 D. ~e (2)下面有关for循环的正确描述是 D 。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判定表达式 C. 在for循环中,不能用break语句跳出循环体 D. for循环体语句中,可以包含多条语句,但要用花括号括起来 (3)C语言中 D 。 A. 不能使用do-while语句构成的循环 B. do-while语句构成的循环必须用break语句才能退出 C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环 (4)C语言中while和do-while循环的主要区别是 A 。 A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格 C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 (5)以下程序段 C 。 int x=-1; do { x=x*x; } while (!x); A. 是死循环 B. 循环执行二次 C. 循环执行一次 D. 有语法错误 (6)下列语句段中不是死循环的是__C__。

第5章循环结构程序设计35 A. i=100; while (1) { i=i%100+1; if (i==20) break; } B.for (i=1;;i++) sum=sum+1; C.k=0; do { ++k; } while (k<=0); D.s=3379; while (s++%2+3%2) s++; (7)与以下程序段等价的是__A__。 while (a) { if (b) continue; c; } A. while (a) B. while (c) { if (!b) c; } { if (!b) break; c; } C. while (c) D. while (a) { if (b) c; } { if (b) break; c; } (8)以下程序的输出结果是_B___。 #include main() { int i; for (i=4;i<=10;i++) { if (i%3==0) continue; COUT<

c语言期末考试试题

一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() A.016 B.018 C.017 D.02 3. 不是C语言实型常量的是:() A.55.0 B.0.0 C.55.5 D.55e2.5 4 .字符串“xyzw”在内存中占用的字节数是:() A.6 B.5 C.4 D.3 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 B.2.25 C.2.1 D.1.5 D.1.5 D.1.5 D.1.5 6. 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2- `a`,c2-c1);则输出结果为:() (a的ASCII码值为97) A.M,2 B.G,3 C.G,2 D.D,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据 输入是:() A.a=2.2,b=3 B.a=2.2 b=3 C.2.2 3 D.2.2,3 8.表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>y?x:mc4)后,s,t的值为:() A.1,2 B.1,1 C.0,1 D.1,0 12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可执行次数为:() A.4 B.6 C.5 D.1 13. 对于for(s=2;;s++)可以理解为:()

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

C语言练习题(带答案)-绝对经典题目不看后悔

1单选题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

C语言循环结构练习题带答案

C语言循环结构练习题 带答案 Company Document number:WTUT-WT88Y-W8BBGB-

第5章循环结构程序设计 基本知识点 while语句的使用格式和注意事项 do-while语句的使用格式和注意事项 for语句的使用格式和注意事项 break和continue语句在循环语句中的应用 循环结构的嵌套 使用goto语句实现循环结构 穷举法程序设计方法 迭代程序设计方法 练习题5 1.单项选择题 (1)语句while(!e);中的条件!e等价于A。 ==0 !=1 !=0 D.~e (2)下面有关for循环的正确描述是D。 循环只能用于循环次数已经确定的情况 循环是先执行循环体语句,后判定表达式 C.在for循环中,不能用break语句跳出循环体 循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中D。 A.不能使用do-while语句构成的循环 语句构成的循环必须用break语句才能退出 语句构成的循环,当while语句中的表达式值为非零时结束循环语句构成的循环,当while语句中的表达式值为零时结束循环(4)C语言中while和do-while循环的主要区别是A。 的循环体至少无条件执行一次 的循环控制条件比do-while的循环控制条件严格 允许从外部转到循环体内 的循环体不能是复合语句 (5)以下程序段C。 intx=-1; do { x=x*x; }

while(!x); A.是死循环 B.循环执行二次 C.循环执行一次 D.有语法错误(6)下列语句段中不是死循环的是__C__。 =100; while(1) { i=i%100+1; if(i==20)break; } (i=1;;i++) sum=sum+1; =0; do { ++k; }while(k<=0); =3379; while(s++%2+3%2) s++; (7)与以下程序段等价的是__A__。 while(a) { if(b)continue; c; } (a) (c) {if(!b)c;} {if(!b)break;c;} (c) (a) {if(b)c;} {if(b)break;c;} (8)以下程序的输出结果是_B___。 #include<> main() { inti; for(i=4;i<=10;i++) { if(i%3==0)continue; COUT<

c语言试题及答案 (2)

C语言部分 一、选择题(每小题2分,共10分) (下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。 1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有( A,C,D, E ) A、*(a+1)为元素6的地址 这里a+1=a[1]的地址;*(a+1)的值是6,故A正确。 B、*(a[1]+1)的值为2 为8,故B不正确 C、**(a+1)+2的值为8 这里a+1是一个指针,指向的是a[1]. *(a+1)为a[1],a[1]指向的是a[1][0]. **(a+1)为6,加2得8,故C正确; D、a[0]与a相同 因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。 E、a[1][2]的值为10 它是指第二行的第三个元素,为10,正确 2、对函数的正确使用方法描述( A,C,D )。 A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组 B、实参数组元素和形参数组元素类型可以不一致 C、形参数组长度可以不指定 D、形参数组长度可以大于实参数组长度 E、数组名做参数属于值传递 3、对静态变量的正确描述( A,B,D,E ) A、静态局部变量在静态存储区内分配单元() B、静态外部变量可以赋初值,也可以不赋初值 C、静态外部变量的作用与外部变量相同 D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。 E、静态局部变量只赋一次初值 4、下列描述正确的是( A ,C)。 A、由main 函数及其参数argc和* argv[]可以实现命令行方式 B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中 //先写缓冲区数据到文件中,再释放文件指针 C、字符数组并不要求它的最后一个字符是‘\0’ //是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用\0,一样可以知道到哪里是字符数组的结尾。 D、‘A’和“A”都是字符串常量 E、若char*S=“\ta\017bc”;则指针变量S指向的字符串所占的字节数是7 5、在缓冲文件系统中用于读写的函数有( A,B,D ) A、putchar () B、fread() C、rewind () D、purw() E、fseek() 二、程序阅读,并给出运行结果(共10分,每题5分)。 (1)main() { unsigned a,b,x int n; a=0x763 输出结果:

C语言习题及解答-2-1

C语言概述 一.选择题 1.下列选项中,合法的C语言关键字是 A) VAR B) cher C) integer D) default 2.请选出可用作C语言用户标识符的一组标识符____ A) Void define WORD B) a3_b3 _123 IF C) For -abc Case D) 2a Do sizeof 3.C语言提供的合法的数据类型关键字是____ A) Double B) short C) integer D) Char 4.在下列字符中,不可用作C语言标识符的是 A) water B) price C) a>b D) a12 5.一下叙述正确的是 A) C语言比其他高级高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C语言出现的最晚、具有其他语言的一切优点 6.在一个C语言程序中 A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现 C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置 7.下列符号不属于C语言保留字的是 A) if B) then C) static D) for 8.下列说法正确的是 A) 主函数名main是由程序设计人员按照“标识符”的命名规则来选取的 B) 分号和回车符都可以作为语句的结束符号 C) 在程序清单的任何地方都可以插入一个或多个空格符号 D) 程序的执行总是从主函数main()开始的 参考答案 1.D 2.B 3.B 4.C 5.C 6.B 7.B 8.D 数据类型与表达式 一.选择题 1. 下列字符序列中,不可用作C语言标识符的是()。 A)abc123 B)no.1 C)_123_ D)_ok 2. 正确的C语言标识符是()。 A)_buy_2 B)2_buy C)?_buy D)buy?

(完整word版)C语言期末模拟试题

一、选择题:(20分,每题2分) 1.以下不正确的C语言标识符是(D)。 A. ABC B. abc C. a_bc D. ab.c 2.C程序是由B构成的。 A. 主程序与子程序 B. 主函数与若干子函数 C. 一个主函数与一个其它函数 D. 主函数与子函数 3.以下说法中正确的是:A。 A. 在C语言中,实参与其对应的形参各占独立的存储单元; B.在C语言中,实参与其对应的形参共占同一个存储单元; C.在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单 元; D. 在C语言中,形参是虚拟的,不占存储单元。 4.设n=3;则n++的结果是(B)。 A. 2 B. 3 C. 4 D. 5 5.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是(A)。 A. 0 B. 1 C. 2 D. 3 6.凡是函数中未指定存储类别的局部变量其隐含的存储类别是(A)。 A. 自动(auto) B. 静态(static) C. 外部(extern) D. 寄存器(register)7.在while(x)语句中的x与下面条件表达式等价的是:D。 A. x= =0 B. x= =1 C. x!=1 D. x!=0 8.若有以下说明和语句: struct worker { int no; char *name; }work, *p=&work; 则以下引用方法不正确的是(D)。 A. work.no B. (*p).no C. p->no D. work->no

9.以下对二维数组进行正确初始化的是(B)。 A.int a[2][3]={{1,2},{3,4},{5,6}}; B.int a[][3]={1,2,3,4,5,6}; C.int a[2][]={1,2,3,4,5,6}; D.int a[2][]={{1,2},{3,4}}; 10.二维数组a有m列,则在a[i][j]之前的元素个数为:B。 A)j*m+i B)i*m+j C)i*m+j-1 D) i*m+j+1 二、给出下列程序的运行结果:(20分,前四题每题3分,后两题每题4分) 1.#include main() { int i=16,j,x=6; j=i+++1; x*=i=j; printf(“%d,%d\n”,j,x); } 运行结果是: 2.#include #include main() { int a=1,b=4,c=2; float x=10.5,y=4.0,z; z=(a+b)/c+sqrt((double)y)*1.2/c+x; printf(“%f\n”,z);

二级C语言试题(含答案)

二级C语言试题 一、判断题(2×8=16分) 1、printf()函数总是从新行的起始位置开始打印。( F ) 2、所有的变量在使用前都必须予以申明。(F) 3、在申明变量时必须给出变量的类型。(T) 4、C语言认为变量number和NuMbEr是相同的。( F) 5、打印三行输出的C语言程序必须用三条printf语句。(F) 6、求余运算符%只能用于两个整数操作数。(T) 7、switch选择结构中必须有default子句。(F) 8、如果x>y或ay&&a

c语言练习题 2

1停车场收费问题 一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5 + (3.6-3)*2 = 6.2 元。最高收费为40元。假设任何车辆的停车时间都不超过24小时。编写程序,计算每辆车的停车费。(注意输出结果小数点后保留两位) 输入 #include int main() { double m,x; printf("输入停车时间x:"); scanf("%lf",&x); if(x<=24) { if(x<3.0) {m=5.0; printf("%lf\n",m);} else if(x>3.0) { m=5.0+2.0*(x-3.0); if(m<=40) printf("%lf\n",m);} } else printf("输出停车费用40元\n"); return 0; 2.#include int main() { double x,m; printf("输入停车时间(x):"); scanf("%lf",&x); if(x<=24) { if(x<=3.0) printf("停车费用5元\n"); if(x>3) m=5.0+2.0*(x-3.0);

if(m<=40) printf("%6.2f\n",m);} else printf("停车费用40元\n"); } } 2 计算细菌数量 一种细菌的繁殖速度是每天成倍增长。例如:第一天有10个,第二天就 变成20个,第三天变成40个,第四天变成80个,……。现在给出第一 天的日期和细菌数目,要你写程序求出到某一天的时候,细菌的数目。 3 计算邮资计算邮资: 用户输入:邮件的重量,以及是否加快 计算规则:重量在1克以内(包括1克), 基本费0.8元。超过1克的部分,按照0.5元/克的比例加收超重费。 如果用户选择加快,多收2元。#include using namespace std; int main() {double x,sum; char exp; while(cin>>x>>exp) { if(x<=1&&exp=='n') sum=0.8; if(x<=1&&exp=='y') sum=2.8; if(x>1&&exp=='n') sum=0.8+(x-1)*0.5; if(x>1&&exp=='y') sum=0.8+(x-1)*0.5+2; cout< using namespace std; int main()

2013年c语言期末考试题

1、给定n 个数据, 求最小值出现的位置(如果最小值 出现多次,求出第一次出现的位置即可)。 最大值 第三行i<=n 五行k+1 2、编写程序求无理数e 的值 并输出。计算公式为: e=1+1/1!+1/2!+1/3!+......+1/n! 当1/n!<0.000001时e=2.718282。 3、求一批数中最大值和最小值的积。 4、某一正数的值保留2位小数,对第三位进行四舍 五入。 5、从键盘上输入任意实数x,求出其所对应的函数值。 z=(x-4)的二次幂(x>4) z=x 的八次幂(x>-4) z=z=4/(x*(x+1))(x>-10) z=|x|+20(其他) 6、求出N ×M 整型数组的最大元素及其所在的行坐标 及列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。 例如:输入的数组为: 1 2 3 4 15 6 12 18 9 10 11 2 求出的最大数为18,行坐标为2,列坐标为1。 7、求一个n 位自然数的各位数字的积。(n 是小于10的 自然数) 8、计算n 门课程的平均值,计算结果作为函数值返回。 例如:若有5门课程的成绩是:92,76,69,58,88, 则函数的值为76.599998。 9、求一批数中小于平均值的数的个数。 10、编写函数判断一个整数m 的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。调用该函数找出 100~200之间满足条件的所有数。 11、请编一个函数void fun(int tt[M][N],int pp[N]), tt 指向一个M 行N 列的二维数组,求出二维数组每列 中最大元素,并依次放入pp 所指一维数组中。二维 数组中的数已在主函数中赋予。

相关主题
文本预览
相关文档 最新文档