c语言入门编程题库100题(c语言编程题100道)

http://www.itjxue.com  2023-02-28 05:13  来源:未知  点击次数: 

计算机二级C语言100套上机填空题和改错题

南开二级C语言上机100题

1、 改错题1

下列给定程序的功能是:读入一个整数(2=k《=10000》,打印它的所有质因子(即所有为素数的因子)。例如,若输入整数2310,则应输出2、3、5、7、11。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include conio.h

#include stdio.h

*******************************

IsPrime(int n); ——————去掉分号

{int i,m;

m=1;

for ( i=2; in; i++)

******************************

if !(n%i) ——————if (!(n%i))

{ m=0; break; }

return (m);

}

main()

{ int j,k;

clrscr();

printf("nPlease enter an integer number between 2 and 10000:");scanf("%d",k);

printf("nnThe prime factor(s) of %d is (are):",k);

for (j=2;j=k;j++)

if ((!(k%j))(IsPrime(j)) printf("n %4d",j);

printf("n");

)

2、 编程题1

m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值行会,将低于平均分的分数放在below所指的数组中。

例如,但score数组的数据为10、20、30、40、50、60、70、80、90时,函数返回的人数应该时4,below中的数据应为10、20、30、40。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include conio.h

#include stdio.h

#include string.h

int fun (int score[],int m, int below[])

{

——————int i,k=0;float aver=0;

for(i=0;im;i++)

aver+=(score[i]);

aver/=m;

for (i=0;im;i++)

if (score[i]aver)

{below[k]=score[i];

k++;

retern(k);}

}

main()

{int i, n, below[9];

int score [9]={10,20,30,40,50,60,70,80,90};

clrscr();

n=fun(score,9,below);

printf("nBelow the average score are:");

for (i=0;in;i++) printf ("%d",below[i]);

}

3、 改错2

下列给定程序中,函数fun的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或等于的字符一次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串为:aBcdeFgh。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include studio.h

#include string.h

****************************************

void; fun(char *p,char *q,char *c)——去分号

***************************************

{int k=1; ——1改为0

***************************************

while(*p!=*q) —— != 改为 ||

***************************************

{if (*p*q) c[k]=*q; ——小于号改为小于等于

else c[k]=*p;

if (*p) p++;

if (*q) q++;

k++;

}

}

main()

{char a[10]="aBCDeFgh",b[10]="ABcd",c[80]={''};

fun(a,b,c);

printf("The string a:"); puts(a);

printf("The string b:"); puts (b);

printf("The result:"); puts(c);

}

4、 改错3

下列给定程序中,函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include stdio.h

#include conio.h

void fun (char *s)

{ int i,j;

for (i=0,j=0;s[i]!='\0';i++)

****************************************

if (s[i]='0' s[i]='9')

s[j]=s[i]; ——————j改为j++

***************************************

s[j]="\0"; ——————s[j]='\0'

}

main()

{char item[80];

clrscr();

printf("\nEnter a string:");gets(item);

printf("\n\nThe string is :\%s\n",item);

fun (item);

printf("\n\nThe string of changing is :\%s\n",item);

}

5、 改错4

下列给定程序中,函数fun的功能是:分别铜级字符串中大写字母和小写字母的个数。例如,给字符串s输入:AAaaBBb123CCccccd,则应该输出结果:upper=6,lower=8。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include conio.h

#include stdio.h

**********************************

void fun (char *s,int a, int b) ————a应为*a,b应为*b

{ while(*s)

{ if (*s='A' *s='Z')

***********************************

a++; ————(*a)++;

if (*s='a' *s='z')

************************************

b++; ————(*b)++;

s++;

}

}

main()

{ char s[100];int upper=0,lower=0;

clrscr();

printf("nPlease a string:");gets(s);

fun(s,upper, lower);

printf("n upper=%d lower=%dn",upper,lower);

}

6、 改错5

假定整数数列中的数不重复,并存放在数组中。下列给定程序中,函数fun的功能是:删除数列中值为x的元素。n中存放的是数列中元素的个数。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include stdio.h

#define N 20

fun (int *a,int n, int x)

{int p=0,i;

a[n]=x;

while (x!=a[p])

p=p+1;

if (p==n) return -1;

else

{for (i=p;in;i++)

******************************************

a[i+1]=a[i]; ————a[i]=a[i+1];

return n-1;

}

}

main()

{int w[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i;

n=10;

printf("The original data:n");

for (i=0;in;i++) printf("%5d",w[i]);

printf("nInput x (to delete):");scanf("%d",x);

printf("Delete:%dn",x);

n=fun(w,n,x);

if (n==-1) printf("***Nor be found!***nn");

else

{printf("The data after deleted:n");

for (i=0,in;i++) printf("%5d",w[i]);printf("nn");

}

}

7、 改错6

下列给定程序中,函数fun的功能是:根据整型形参m的值,计算如下公式的值。t=1-1/2×2-1/3×3-…-1/m×m

例如,若m中的值为5,则应输出:0.536389。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include conio.h

#include stdio.h

double fun (int m)

{ double y=1.0;

int i;

***************************************

for (i=2;im;i++) ———— “”改为“=”

***************************************

y-=1/(i*i); ————“1”改为“1.0”

return(y);

}

main ()

{int n=5;

clrscr();

printf("\nRhe result is %1f\n",fun(n));

}

8、 改错7

下列给定程序中,函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include stdio.h

#define N 20

void fun(int a[],int n)

{ int i,j,t,p;

for (j=0;jn-1;j++)

***************************

{p=j ——加上“;”

for (i=j;i,n;i++) ——j改为j+1

if (a[i]a[p])

*********************************

p=j; ——j改为i

t=a[p];a[p]=a[j];a[j]=t;

}

}

main()

{

int a[N]={9,6,8,3,-1},i,m=5;

printf("排序前的数据:");

for (i=0;im;i++) printf("%d",a[i]);printf("\n");

fun(a,m);

printf("排序后的数据:");

for (i=0;im;i++) printf("%d",a[i]);printf("\n");

}

9、 改错8(2004.7.27)

下列给定程序中,函数fun的功能是:在字符串str中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。例如,调用fun函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容为eABCDFGH。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include stdio.h

fun(char *p)

{ char max,*q;int i=0;

max=p[i];

while(p[i]!=0)

{ if(maxp[i])

{max=p[i];

*******************************

p=q+i; ——改为q=p+i;

}

i++;

}

******************************

while(qp) ——qp改为qp

{*q=*(q-1);

q--;

}

p[0]=max;

}

main()

{char str[80];

printf("Enter a string:");gets(Str);

printf("\nThe original string: ");puts(Str);

fun(str);

printf("\nThe string agter moving:");puts (str);ptintf("\n\n");

}

10、 改错9(2004.7.27)

下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如,若输入8名学生的成绩:

80.5 60 72 90.5 98 51.5 88 64

则低于平均分的学生人数为4(平均分为:75.5625)。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include conio.h

#include stdio.h

#define N 20

int fun (float *s,int n,float *aver)

{float ave,t=0.0;

int count=0,k,i;

for (k=0;kn;k++)

*******************************

t=s[k]; ——t+=s[k];

ave=t/n;

for (i=0;in;i++)

if (s[i]ave) count++;

******************************

*aver=ave; ——去掉

return count;

}

main()

{float s[30],aver;

int m,i;

clrscr();

printf("nPlease enter m:";scanf("%d",m);

printf("nPlease enter %d mark:n",m);

for (i=0;im;i++) scanf("%f",s+i);

printf("nThe number of students:%dn",fun(s,m,aver));

printf("Ave=%fn",aver);

)

11、 改错10(2004.8.1)

下列给定程序中,函数fun的功能是:将s所指字符串中出现的t1所指子串全部替换成t2所指子字符串,所形成的新串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。例如,当s所指字符产中的内容为abcdabfab,t1所指子串中的内容为ab,t2所指子串中的内容为99时,结果,在2

所指的数组中内容应为99cd99f99。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#includeconio.h

#includestdio.h

#includestring.h

int fun (char *s, char *t1,char*t2,char*w)

{

int i; char *p,*r,*a;

strcpy(w,s);

while(*w)

{p=w;r=t1;

********************************************

while(r) ——r改为*r

if(*r==*p) {r++;p++}

else break;

if(*r=='')

{a=w;r=t2;

*******************************************

while(*r){*a=*r;a++;r++} ——改为while(*r){*a=*r;a++;r++;}

w+=strlen(t2);

}

else w++;

}

}

main()

{

char s[100],t1[100],t2[100],w[100];

clrscr();

printf("nPlease enter string S:");scanf("%s",s);

printf("nPlease enter string t1:");scanf("%s",t1);

printf("nPlease enter string t2:");scanf("%s",t2);

if (strlen(t1)==strlen(t2))

{

printf("nThe result is :%sn",w);

}

else printf("Error:strlen(t1)!=strlen(t2)n");

}

12、 改错11(2004.8.1)

给定程序MODI1.C中,fun函数的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之积。

请改正程序中的错误,或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include stdio.h

int fun ()

{

int a [3] [3], sum;

int i, j;

***********************************

_____; ——sum = 1;

for (i=0;i3;i++)

{ for (j=0;j3;j++)

*****************************************

scanf (〃%d〃 a [i] [j]); ——scanf("%d", a[i][j]);

}

for (i=0; i3; i++)

sum=sum*a[i] [i];

printf (〃Sum=%dn〃, sum);

}

main ()

{ fun (); }

13、 改错12(8.1)

下列程序的功能是:读入一个整数 k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。例如,若输入整数:2310,则应输出:2、3、5、7、11。

请改正程序中的语法错误,使程序能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include 〃conio.h〃

#include 〃stdio.h〃

************************************************

IsPrime ( int n ); ——IsPrime(int n)

{ int i, m;

m = 1;

for ( i = 2; i n/ i++ )

*********************************************

if !( n%i ) ——if(!(n%i))

{ m=0; break ; }

return ( m );

}

main ()

{ int j, k;

clrscr ();

printf (〃nPease enter an integer number between 2 and 10000:〃); scanf ( 〃%d〃,k );

printf ( 〃nn The prime factor (s) of % d is ( are ):〃, k );

for ( j = 2; j = k; j++ )

if ( ( ! k%j ) ) ( IsPrime ( j ) ) } printf ( 〃n % 4d〃, j );

printf (〃n〃);

}

14、 改错13(8.4)

下列程序中,fun函数的功能是:根据形参m,计算如下公式的值。

t=1+ 1/2 + 1/3 + 1/4 + … + 1/m

例如,若输入5,则应输出2.283333。

请改正程序中的语法错误,使程序能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#includeconio.h

#includestdio.h

double fun(int m)

{

double t=1.0;

int i;

for(i=2;i=m;i++)

*******************************************

t+=1.0/k; ——k改为i

*********************************************

____________; ——填return t;

}

main()

{

int m;

clrscr();

printf(“nPlease enter 1 integer number:”);

scanf(“%d”,m);

printf(“nThe result is %1fn”,fun(m));

}

15、 改错14(8.4)

下列程序中,fun和funx函数的功能是:

用二分法求方程2x×x×x-4x×x+3x-6=0的一个根,并要求绝对误差不超过0.001。例如,若给m输入-100,给n输入90,则函数求得的一个根为2.000。

请改正程序中的语法错误,使程序能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#includestdio.h

#includemath.h

double funx(double x)

{

return(2*x*x*x-4*x*x+3*x-6);

}

double fun(double m, double n)

{

**************************************

int r;——改为double r;

r=(m+n)/2;

**********************************

while(fabs(n-m)0.001) —— "" 改为" = "

{if(funx(r)*funx(n)0 m=r;

else n=r;

r=(m+n)/2;

)

return r;

)

main()

{

double m,n,root;

printf("Enter m n:n");scanf("%1f%1f",m,n);

root=fun(m,n);

printf("root=%6.3fn",root);

}

16、 改错15(8.5)

下列给定程序中,函数fun的功能是:判断字符ch是否与str所指串中的某个字符相同;若相同,则什么也不做,若不同,则将器插在串的最后。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include conio.h

#include stdio.h

#include string.h

**********************************

void fun(char str, char ch)------------------------1

{ while(*str *str!=ch) str++;

**********************************

if (*str==ch)------------------------------------2

{ str[0]=ch;

*********************************

str[1]='0';------------------------------------3

}

}

main()

{char s[81],c;

clrscr();

printf("nPlease enter a string:n");gets(s)

printf("nPlease enter the character to search:");

c=getchar();

fun(s,c);

printf("nThe result is %sn",s);

}

15 题Answer:

1. void fun(char *str, char ch)

2. if (*str=='

17、 改错16(8.5)

下列给定程序中,函数Creatlink的功能是:创建带头结点的单项链表,并为各结点数据域赋0到m-1的值。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include conio.h

#include stdio.h

#include stdlib.h

typedef struct aa

{ int data;

struct aa *next;

}NODE;

NODE *Creatlink(int n, int m)

{NODE *h=Null, *p,*s;

int i;

s=(NODE *)malloc(sizeof(NODE));

********************************************

h=p;-------------------------------------1

p-next=NULL;

for (i=1;i=n;i++)

{s=(NODE *)malloc(sizeof(NODE));

********************************************

s-data=rand()%m;-----------------------2

s-next=p-next;

p-next=s;

p=p-next;

}

********************************************

return p;--------------------------------3

}

outlink(NODE *h)

{NODE *p;

p=h-next;

printf("nnTHE LIST:nn HEAD");

while(p)

{printf("-%d",p-data);

p=p-next;

}

printf("n");

}

main()

{ NODE *head;

clrscr();

head=Creatlink(8,22);

outlink(head);

}

16 题Answer:

1. h=p=s;

2. s-data=rand()%(m-1);

3. return h;

18、 改错17(8.5)

下列给定程序中,函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数值为4622。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include conio.h

#include stdio.h

int fun(int k)

{int m=0, mc=0,j;

while ((k=2)(mc10))

*********************************

{if ((k%13=0)||(k%17=0))-------------------1

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

k--;

}

return m;

**********************************

_____________-------------------------------2

main()

{clrscr();

printf("%dn",fun(500));

}

17 题Answer:

1. if ((k%13==0)||(k%17==0))

2. }

19、 改错18(8.5)

下列给定程序中,函数fun的功能是:实现两个整数的交换。例如给a和b分别输入60和65,输出为:a=65 b=60

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include conio.h

#include stdio.h

********************************

void fun (int a,b)--------------------------1

{int t;

*******************************

t=b;b=a;a=t;-------------------------------2

}

main()

{int a,b;

clrscr();

printf("Enter a,b:");scanf("%d%d",a,b);

fun(a,b);

printf("a=%d b=%dn",a,b);

}

18 题Answer:

1. void fun (int *a,int *b)

2. t=*b;*b=*a;*a=t;

20、 改错19(8.5)

下列给定程序中,函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,一次构成一个新数放在t中。例如,当s中的数为7654321时,t是的数为642。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include conio.h

#include stdio.h

********************************

void fun (long s, long t)--------------------------1

{long sl=10;

s/=10;

*t=s%10;

****************************

while (s0)--------------------------------------2

{s=s/100;

*t=s%10*sl+*t;

sl=sl*10;

}

}

main()

{long s,t;

clrscr();

printf("nPlease enter s:");scanf("%ld",s);

fun(s,t);

printf("The result is : %ldn",t);

}

19 题Answer:

1. void fun (long s, long *t)

2. while (s0)

21、 改错20(8.5)

N个有序整数数列已放在一堆数组中,下列给定程序中,函数fun的功能是:利用折半查找算法找整数m再数组中的位置。若找到,则返回其下标值;反之,则返回-1。

折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(lowhigh),然后把m与中间位置(mid)中元素的值进行比较。如果m的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中。直到lowhigh,查找结束。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include stdio.h

#define N 10

************************************

void fun(int a[],int m)--------------------------1

{int low=0,high=N-1,mid;

while(low=high)

{mid=(low+high)/2;

if (ma[mid])

high=mid-1;

***************************************

else if (m=a[mid])----------------------------2

low=mid+1;

else return(mid);

}

return(-1);

}

main()

{int i,a[N]={-3,4,7,9,13,45,67,89,100,180},k,m;

printf("a数组中的数据如下:");

for(i=0;iN;i++) printf("%d",a[i]);

printf("Enter m:");scanf("%d",m);

k=fun(a,m);

if(k=0) printf("m=%d,index=%d\n",m,k);

else printf("Not be found!\n");

}

20 题Answer:

1. int fun(int a[],int m)

2. else if (ma[mid])

c语言编程100题,有没有大神帮帮忙

您好,c语言经典100题:

【程序1】

题目:有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数

都是多少

1.程序分析:可填在百位,十位,个位的数字都是1,2,3,4.组成所有的排列后再去

掉不满足条件的排列.

2.程序源代码:

main()

{

int

i,j,k;

printf("\n");

for(i1;i5;i++)

/*以下为三重循环*/

for(j1;j5;j++)

for

(k1;k5;k++)

{

if

(i!ki!jj!k)

/*确保i,j,k三位互不相同*/

printf("%d,%d,%d\n",i,j,k);

}

}

【程序2】

题目:企业发放的奖金根据利润提成.利润(i)低于或等于10万元时,奖金可提10%;利润高

于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提

成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于

40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于

100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数

1.程序分析:请利用数轴来分界,定位.注意定义时需把奖金定义成长整型.

2.程序源代码:

main()

{

long

int

i;

int

bonus1,bonus2,bonus4,bonus6,bonus10,bonus;

scanf("%ld",i);

bonus1100000*0.1;bonus2bonus1+100000*0.75;

bonus4bonus2+200000*0.5;

bonus6bonus4+200000*0.3;

bonus10bonus6+400000*0.15;

if(i100000)

bonusi*0.1;

else

if(i200000)

bonusbonus1+(i-100000)*0.075;

else

if(i400000)

bonusbonus2+(i-200000)*0.05;

else

if(i600000)

bonusbonus4+(i-400000)*0.03;

else

if(i1000000)

bonusbonus6+(i-600000)*0.015;

else

bonusbonus10+(i-1000000)*0.01;

printf("bonus%d",bonus);

}

【程序3】

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少

1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后

的结果满足如下条件,即是结果.请看具体分析:

2.程序源代码:

#include

"math.h"

main()

{

long

int

i,x,y,z;

for

(i1;i2)/*如果是闰年且月份大于2,总天数应该加一天*/

sum++;

printf("it

is

the

%dth

day.",sum);}

【程序4】

题目:输入某年某月某日,判断这一天是这一年的第几天?

1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊

情况,闰年且输入月份大于3时需考虑多加一天。

2.程序源代码:

main()

{

int

day,month,year,sum,leap;

printf("\nplease

input

year,month,day\n");

scanf("%d,%d,%d",year,month,day);

switch(month)/*先计算某月以前月份的总天数*/

{

case

1:sum0;break;

case

2:sum31;break;

case

3:sum59;break;

case

4:sum90;break;

case

5:sum120;break;

case

6:sum151;break;

case

7:sum181;break;

case

8:sum212;break;

case

9:sum243;break;

case

10:sum273;break;

case

11:sum304;break;

case

12:sum334;break;

default:printf("data

error");break;

}

sumsum+day;

/*再加上某天的天数*/

if(year%4000||(year%40year%100!0))/*判断是不是闰年*/

leap1;

else

leap0;

if(leap1month2)/*如果是闰年且月份大于2,总天数应该加一天*/

sum++;

printf("It

is

the

%dth

day.",sum);}

【程序5】

题目:输入三个整数x,y,z,请把这三个数由小到大输出.

1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果xy则将x与y的值进行交换,

然后再用x与z进行比较,如果xz则将x与z的值进行交换,这样能使x最小.

2.程序源代码:

main()

{

int

x,y,z,t;

scanf("%d%d%d",x,y,z);

if

(xy)

{tx;xy;yt;}

/*交换x,y的值*/

if(xz)

{tz;zx;xt;}/*交换x,z的值*/

if(yz)

{ty;yz;zt;}/*交换z,y的值*/

printf("small

to

big:

%d

%d

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

}

【程序6】

题目:用*号输出字母c的图案.

1.程序分析:可先用'*'号在纸上写出字母c,再分行输出.

2.程序源代码:

#include

"stdio.h"

main()

{

printf("hello

c-world!\n");

printf("

****\n");

printf("

*\n");

printf("

*

\n");

printf("

****\n");

}

【程序7】

题目:输出特殊图案,请在c环境中运行,看一看,very

beautiful!

1.程序分析:字符共有256个.不同字符,图形不一样.

2.程序源代码:

#include

"stdio.h"

main()

{

char

a176,b219;

printf("%c%c%c%c%c\n",b,a,a,a,b);

printf("%c%c%c%c%c\n",a,b,a,b,a);

printf("%c%c%c%c%c\n",a,a,b,a,a);

printf("%c%c%c%c%c\n",a,b,a,b,a);

printf("%c%c%c%c%c\n",b,a,a,a,b);}

【程序8】

题目:输出9*9口诀.

1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列.

2.程序源代码:

#include

"stdio.h"

main()

{

int

i,j,result;

printf("\n");

for

(i1;i10;i++)

{

for(j1;j10;j++)

{

resulti*j;

printf("%d*%d%-3d",i,j,result);/*-3d表示左对齐,占3位*/

}

printf("\n");/*每一行后换行*/

}

}

【程序9】

题目:要求输出国际象棋棋盘.

1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格.

2.程序源代码:

#include

"stdio.h"

main()

{

int

i,j;

for(i0;i8;i++)

{

for(j0;j8;j++)

if((i+j)%20)

printf("%c%c",219,219);

else

printf("

");

printf("\n");

}

}

【程序10】

题目:打印楼梯,同时在楼梯上方打印两个笑脸.

1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数.

2.程序源代码:

#include

"stdio.h"

main()

{

int

i,j;

printf("\1\1\n");/*输出两个笑脸*/

for(i1;i11;i++)

{

for(j1;ji;j++)

printf("%c%c",219,219);

printf("\n");

}

}

【程序11】

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月

后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少

1.程序分析:

兔子的规律为数列1,1,2,3,5,8,13,21....

2.程序源代码:

main()

{

long

f1,f2;

int

i;

f1f21;

for(i1;i20;i++)

{

printf("%12ld

%12ld",f1,f2);

if(i%20)

printf("\n");/*控制输出,每行四个*/

f1f1+f2;

/*前两个月加起来赋值给第三个月*/

f2f1+f2;

/*前两个月加起来赋值给第三个月*/

}

}

【程序12】

题目:判断101-200之间有多少个素数,并输出所有素数.

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,

则表明此数不是素数,反之是素数.

2.程序源代码:

#include

"math.h"

main()

{

int

m,i,k,h0,leap1;

printf("\n");

for(m101;m200;m++)

{

ksqrt(m+1);

for(i2;ik;i++)

if(m%i0)

{leap0;break;}

if(leap)

{printf("%-4d",m);h++;

if(h%100)

printf("\n");

}

leap1;

}

printf("\nthe

total

is

%d",h);

}

7道C语言编程题,急求答案

#include stdio.h

void main()

{

int i,j;

int sum=0; //定义对角线的和

int a[100][100],n;

printf("输入是n*n矩阵的n值:");

scanf("%d",n);

printf("输入一个%d*%d矩阵:",n,n);

printf("\n");

for(i=0;in;i++)

for(j=0;jn;j++)

{

scanf("%d",a[i][j]); //按矩阵格式输入

}

for(i=0;in;i++)

{

sum=sum+a[i][i]; //求出对角线数之和

}

printf("矩阵对角线之和为: %d\n",sum);

}

谁给我提供一套C语言编程题库

题目:打印出杨辉三角形(要求打印出10行如下图)

1.程序分析:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

2.程序源代码:

main()

{int i,j;

int a[10][10];

printf("\n");

for(i=0;i10;i++)

{a[i][0]=1;

a[i][i]=1;}

for(i=2;i10;i++)

for(j=1;j a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=0;i10;i++)

{for(j=0;j=i;j++)

printf("]",a[i][j]);

printf("\n");

}

}

==============================================================

【程序62】

题目:学习putpixel画点。

1.程序分析:

2.程序源代码:

#include "stdio.h"

#include "graphics.h"

main()

{

int i,j,driver=VGA,mode=VGAHI;

initgraph(driver,mode,"");

setbkcolor(YELLOW);

for(i=50;i=230;i+=20)

for(j=50;j=230;j++)

putpixel(i,j,1);

for(j=50;j=230;j+=20)

for(i=50;i=230;i++)

putpixel(i,j,1);

}

==============================================================

【程序63】

题目:画椭圆ellipse

1.程序分析:

2.程序源代码:

#include "stdio.h"

#include "graphics.h"

#include "conio.h"

main()

{

int x=360,y=160,driver=VGA,mode=VGAHI;

int num=20,i;

int top,bottom;

initgraph(driver,mode,"");

top=y-30;

bottom=y-30;

for(i=0;i{

ellipse(250,250,0,360,top,bottom);

top-=5;

bottom+=5;

}

getch();

}

==============================================================

【程序64】

题目:利用ellipse and rectangle 画图。

1.程序分析:

2.程序源代码:

#include "stdio.h"

#include "graphics.h"

#include "conio.h"

main()

{

int driver=VGA,mode=VGAHI;

int i,num=15,top=50;

int left=20,right=50;

initgraph(driver,mode,"");

for(i=0;i{

ellipse(250,250,0,360,right,left);

ellipse(250,250,0,360,20,top);

rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2));

right+=5;

left+=5;

top+=10;

}

getch();

}

==============================================================

【程序65】

题目:一个最优美的图案。

1.程序分析:

2.程序源代码:

#include "graphics.h"

#include "math.h"

#include "dos.h"

#include "conio.h"

#include "stdlib.h"

#include "stdio.h"

#include "stdarg.h"

#define MAXPTS 15

#define PI 3.1415926

struct PTS {

int x,y;

};

double AspectRatio=0.85;

void LineToDemo(void)

{

struct viewporttype vp;

struct PTS points[MAXPTS];

int i, j, h, w, xcenter, ycenter;

int radius, angle, step;

double rads;

printf(" MoveTo / LineTo Demonstration" );

getviewsettings( vp );

h = vp.bottom - vp.top;

w = vp.right - vp.left;

xcenter = w / 2; /* Determine the center of circle */

ycenter = h / 2;

radius = (h - 30) / (AspectRatio * 2);

step = 360 / MAXPTS; /* Determine # of increments */

angle = 0; /* Begin at zero degrees */

for( i=0 ; irads = (double)angle * PI / 180.0; /* Convert angle to radians */

points[i].x = xcenter + (int)( cos(rads) * radius );

points[i].y = ycenter - (int)( sin(rads) * radius * AspectRatio );

angle += step; /* Move to next increment */

}

circle( xcenter, ycenter, radius ); /* Draw bounding circle */

for( i=0 ; ifor( j=i ; jmoveto(points[i].x, points[i].y); /* Move to beginning of cord */

lineto(points[j].x, points[j].y); /* Draw the cord */

} } }

main()

{int driver,mode;

driver=CGA;mode=CGAC0;

initgraph(driver,mode,"");

setcolor(3);

setbkcolor(GREEN);

LineToDemo();}

==============================================================

【程序66】

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

1.程序分析:利用指针方法。

2.程序源代码:

/*pointer*/

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;

if(n1n2) swap(pointer1,pointer2);

if(n1n3) swap(pointer1,pointer3);

if(n2n3) swap(pointer2,pointer3);

printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);

}

swap(p1,p2)

int *p1,*p2;

{int p;

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

}

==============================================================

【程序67】

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

1.程序分析:谭浩强的书中答案有问题。

2.程序源代码:

main()

{

int number[10];

input(number);

max_min(number);

output(number);

}

input(number)

int number[10];

{int i;

for(i=0;i9;i++)

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

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

}

max_min(array)

int array[10];

{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;

else if(*p*min) min=p;

k=*max;

l=*min;

*p=array[0];array[0]=l;l=*p;

*p=array[9];array[9]=k;k=*p;

return;

}

output(array)

int array[10];

{ int *p;

for(p=array;p printf("%d,",*p);

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

}

==============================================================

【程序68】

题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

1.程序分析:

2.程序源代码:

main()

{

int number[20],n,m,i;

printf("the total numbers is:");

scanf("%d",n);

printf("back m:");

scanf("%d",m);

for(i=0;i scanf("%d,",number[i]);

scanf("%d",number[n-1]);

move(number,n,m);

for(i=0;i printf("%d,",number[i]);

printf("%d",number[n-1]);

}

move(array,n,m)

int n,m,array[20];

{

int *p,array_end;

array_end=*(array+n-1);

for(p=array+n-1;parray;p--)

*p=*(p-1);

*array=array_end;

m--;

if(m0) move(array,n,m);

}

==============================================================

【程序69】

题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出

圈子,问最后留下的是原来第几号的那位。

1. 程序分析:

2.程序源代码:

#define nmax 50

main()

{

int i,k,m,n,num[nmax],*p;

printf("please input the total of numbers:");

scanf("%d",n);

p=num;

for(i=0;i *(p+i)=i+1;

i=0;

k=0;

m=0;

while(m {

if(*(p+i)!=0) k++;

if(k==3)

{ *(p+i)=0;

k=0;

m++;

}

i++;

if(i==n) i=0;

}

while(*p==0) p++;

printf("%d is left\n",*p);

}

==============================================================

【程序70】

题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

1.程序分析:

2.程序源代码:

main()

{

int len;

char *str[20];

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

scanf("%s",str);

len=length(str);

printf("the string has %d characters.",len);

}

length(p)

char *p;

{

int n;

n=0;

while(*p!='\0')

{

n++;

p++;

}

return n;

}

【程序71】

题目:编写input()和output()函数输入,输出5个学生的数据记录。

1.程序分析:

2.程序源代码:

#define N 5

struct student

{ char num[6];

char name[8];

int score[4];

} stu[N];

input(stu)

struct student stu[];

{ int i,j;

for(i=0;i { printf("\n please input %d of %d\n",i+1,N);

printf("num: ");

scanf("%s",stu[i].num);

printf("name: ");

scanf("%s",stu[i].name);

for(j=0;j3;j++)

{ printf("score %d.",j+1);

scanf("%d",stu[i].score[j]);

}

printf("\n");

}

}

print(stu)

struct student stu[];

{ int i,j;

printf("\nNo. Name Sco1 Sco2 Sco3\n");

for(i=0;i{ printf("%-6s%-10s",stu[i].num,stu[i].name);

for(j=0;j3;j++)

printf("%-8d",stu[i].score[j]);

printf("\n");

}

}

main()

{

input();

print();

}

==============================================================

【程序72】

题目:创建一个链表。

1.程序分析:

2.程序源代码:

/*creat a list*/

#include "stdlib.h"

#include "stdio.h"

struct list

{ int data;

struct list *next;

};

typedef struct list node;

typedef node *link;

void main()

{ link ptr,head;

int num,i;

ptr=(link)malloc(sizeof(node));

ptr=head;

printf("please input 5 numbers==\n");

for(i=0;i=4;i++)

{

scanf("%d",num);

ptr-data=num;

ptr-next=(link)malloc(sizeof(node));

if(i==4) ptr-next=NULL;

else ptr=ptr-next;

}

ptr=head;

while(ptr!=NULL)

{ printf("The value is ==%d\n",ptr-data);

ptr=ptr-next;

}

}

==============================================================

【程序73】

题目:反向输出一个链表。

1.程序分析:

2.程序源代码:

/*reverse output a list*/

#include "stdlib.h"

#include "stdio.h"

struct list

{ int data;

struct list *next;

};

typedef struct list node;

typedef node *link;

void main()

{ link ptr,head,tail;

int num,i;

tail=(link)malloc(sizeof(node));

tail-next=NULL;

ptr=tail;

printf("\nplease input 5 data==\n");

for(i=0;i=4;i++)

{

scanf("%d",num);

ptr-data=num;

head=(link)malloc(sizeof(node));

head-next=ptr;

ptr=head;

}

ptr=ptr-next;

while(ptr!=NULL)

{ printf("The value is ==%d\n",ptr-data);

ptr=ptr-next;

}}

==============================================================

【程序74】

题目:连接两个链表。

1.程序分析:

2.程序源代码:

#include "stdlib.h"

#include "stdio.h"

struct list

{ int data;

struct list *next;

};

typedef struct list node;

typedef node *link;

link delete_node(link pointer,link tmp)

{if (tmp==NULL) /*delete first node*/

return pointer-next;

else

{ if(tmp-next-next==NULL)/*delete last node*/

tmp-next=NULL;

else /*delete the other node*/

tmp-next=tmp-next-next;

return pointer;

}

}

void selection_sort(link pointer,int num)

{ link tmp,btmp;

int i,min;

for(i=0;i {

tmp=pointer;

min=tmp-data;

btmp=NULL;

while(tmp-next)

{ if(mintmp-next-data)

{min=tmp-next-data;

btmp=tmp;

}

tmp=tmp-next;

}

printf("\40: %d\n",min);

pointer=delete_node(pointer,btmp);

}

}

link create_list(int array[],int num)

{ link tmp1,tmp2,pointer;

int i;

pointer=(link)malloc(sizeof(node));

pointer-data=array[0];

tmp1=pointer;

for(i=1;i{ tmp2=(link)malloc(sizeof(node));

tmp2-next=NULL;

tmp2-data=array[i];

tmp1-next=tmp2;

tmp1=tmp1-next;

}

return pointer;

}

link concatenate(link pointer1,link pointer2)

{ link tmp;

tmp=pointer1;

while(tmp-next)

tmp=tmp-next;

tmp-next=pointer2;

return pointer1;

}

void main(void)

{ int arr1[]={3,12,8,9,11};

link ptr;

ptr=create_list(arr1,5);

selection_sort(ptr,5);

}

==============================================================

【程序75】

题目:放松一下,算一道简单的题目。

1.程序分析:

2.程序源代码:

main()

{

int i,n;

for(i=1;i5;i++)

{ n=0;

if(i!=1)

n=n+1;

if(i==3)

n=n+1;

if(i==4)

n=n+1;

if(i!=4)

n=n+1;

if(n==3)

printf("zhu hao shi de shi:%c",64+i);

}

}

==============================================================

【程序76】

题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数

1/1+1/3+...+1/n(利用指针函数)

1.程序分析:

2.程序源代码:

main()

#include "stdio.h"

main()

{

float peven(),podd(),dcall();

float sum;

int n;

while (1)

{

scanf("%d",n);

if(n1)

break;

}

if(n%2==0)

{

printf("Even=");

sum=dcall(peven,n);

}

else

{

printf("Odd=");

sum=dcall(podd,n);

}

printf("%f",sum);

}

float peven(int n)

{

float s;

int i;

s=1;

for(i=2;i=n;i+=2)

s+=1/(float)i;

return(s);

}

float podd(n)

int n;

{

float s;

int i;

s=0;

for(i=1;i=n;i+=2)

s+=1/(float)i;

return(s);

}

float dcall(fp,n)

float (*fp)();

int n;

{

float s;

s=(*fp)(n);

return(s);

}

==============================================================

【程序77】

题目:填空练习(指向指针的指针)

1.程序分析:

2.程序源代码:

main()

{ char *s[]={"man","woman","girl","boy","sister"};

char **q;

int k;

for(k=0;k5;k++)

{ ;/*这里填写什么语句*/

printf("%s\n",*q);

}

}

==============================================================

【程序78】

题目:找到年龄最大的人,并输出。请找出程序中有什么问题。

1.程序分析:

2.程序源代码:

#define N 4

#include "stdio.h"

static struct man

{ char name[20];

int age;

} person[N]={"li",18,"wang",19,"zhang",20,"sun",22};

main()

{struct man *q,*p;

int i,m=0;

p=person;

for (i=0;i{if(mage)

q=p++;

m=q-age;}

printf("%s,%d",(*q).name,(*q).age);

}

==============================================================

【程序79】

题目:字符串排序。

1.程序分析:

2.程序源代码:

main()

{

char *str1[20],*str2[20],*str3[20];

char swap();

printf("please input three strings\n");

scanf("%s",str1);

scanf("%s",str2);

scanf("%s",str3);

if(strcmp(str1,str2)0) swap(str1,str2);

if(strcmp(str1,str3)0) swap(str1,str3);

if(strcmp(str2,str3)0) swap(str2,str3);

printf("after being sorted\n");

printf("%s\n%s\n%s\n",str1,str2,str3);

}

char swap(p1,p2)

char *p1,*p2;

{

char *p[20];

strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);

}

==============================================================

【程序80】

题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只

猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了

一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,

问海滩上原来最少有多少个桃子?

1.程序分析:

2.程序源代码:

main()

{int i,m,j,k,count;

for(i=4;i10000;i+=4)

{ count=0;

m=i;

for(k=0;k5;k++)

{

j=i/4*5+1;

i=j;

if(j%4==0)

count++;

else

break;

}

i=m;

if(count==4)

{printf("%d\n",count);

break;}

}

}

【程序81】

题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。

1.程序分析:

2.程序源代码:

output(long b,long i)

{ printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i);

}

main()

{long int a,b,i;

a=809;

for(i=10;i100;i++)

{b=i*a+1;

if(b=1000b=100008*i1009*i=100)

output(b,i); }

}

==============================================================

【程序82】

题目:八进制转换为十进制

1.程序分析:

2.程序源代码:

main()

{ char *p,s[6];int n;

p=s;

gets(p);

n=0;

while(*(p)!='\0')

{n=n*8+*p-'0';

p++;}

printf("%d",n);

}

==============================================================

【程序83】

题目:求0—7所能组成的奇数个数。

1.程序分析:

2.程序源代码:

main()

{

long sum=4,s=4;

int j;

for(j=2;j=8;j++)/*j is place of number*/

{ printf("\n%ld",sum);

if(j=2)

s*=7;

else

s*=8;

sum+=s;}

printf("\nsum=%ld",sum);

}

==============================================================

【程序84】

题目:一个偶数总能表示为两个素数之和。

1.程序分析:

2.程序源代码:

#include "stdio.h"

#include "math.h"

main()

{ int a,b,c,d;

scanf("%d",a);

for(b=3;b=a/2;b+=2)

{ for(c=2;c=sqrt(b);c++)

if(b%c==0) break;

if(csqrt(b))

d=a-b;

else

break;

for(c=2;c=sqrt(d);c++)

if(d%c==0) break;

if(csqrt(d))

printf("%d=%d+%d\n",a,b,d);

}

}

==============================================================

【程序85】

题目:判断一个素数能被几个9整除

1.程序分析:

2.程序源代码:

main()

{ long int m9=9,sum=9;

int zi,n1=1,c9=1;

scanf("%d",zi);

while(n1!=0)

{ if(!(sum%zi))

n1=0;

else

{m9=m9*10;

sum=sum+m9;

c9++;

}

}

printf("%ld,can be divided by %d \"9\"",sum,c9);

}

==============================================================

【程序86】

题目:两个字符串连接程序

1.程序分析:

2.程序源代码:

#include "stdio.h"

main()

{char a[]="acegikm";

char b[]="bdfhjlnpq";

char c[80],*p;

int i=0,j=0,k=0;

while(a[i]!='\0'b[j]!='\0')

{if (a[i] { c[k]=a[i];i++;}

else

c[k]=b[j++];

k++;

}

c[k]='\0';

if(a[i]=='\0')

p=b+j;

else

p=a+i;

strcat(c,p);

puts(c);

}

==============================================================

【程序87】

题目:回答结果(结构体变量传递)

1.程序分析:

2.程序源代码:

#include "stdio.h"

struct student

{ int x;

char c;

} a;

main()

{a.x=3;

a.c='a';

f(a);

printf("%d,%c",a.x,a.c);

}

f(struct student b)

{

b.x=20;

b.c='y';

}

==============================================================

【程序88】

题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。

1.程序分析:

2.程序源代码:

main()

{int i,a,n=1;

while(n=7)

{ do {

scanf("%d",a);

}while(a1||a50);

for(i=1;i=a;i++)

printf("*");

printf("\n");

n++;}

getch();

}

==============================================================

【程序89】

题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:

每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

1.程序分析:

2.程序源代码:

main()

{int a,i,aa[4],t;

scanf("%d",a);

aa[0]=a;

aa[1]=a0/10;

aa[2]=a00/100;

aa[3]=a/1000;

for(i=0;i=3;i++)

{aa[i]+=5;

aa[i]%=10;

}

for(i=0;i=3/2;i++)

{t=aa[i];

aa[i]=aa[3-i];

aa[3-i]=t;

}

for(i=3;i=0;i--)

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

}

==============================================================

【程序90】

题目:专升本一题,读结果。

1.程序分析:

2.程序源代码:

#include "stdio.h"

#define M 5

main()

{int a[M]={1,2,3,4,5};

int i,j,t;

i=0;j=M-1;

while(i {t=*(a+i);

*(a+i)=*(a+j);

*(a+j)=t;

i++;j--;

}

for(i=0;i printf("%d",*(a+i));

}

【程序91】

题目:时间函数举例1

1.程序分析:

2.程序源代码:

#include "stdio.h"

#include "time.h"

void main()

{ time_t lt; /*define a longint time varible*/

lt=time(NULL);/*system time and date*/

printf(ctime()); /*english format output*/

printf(asctime(localtime()));/*tranfer to tm*/

printf(asctime(gmtime())); /*tranfer to Greenwich time*/

}

==============================================================

【程序92】

题目:时间函数举例2

1.程序分析:

2.程序源代码:

/*calculate time*/

#include "time.h"

#include "stdio.h"

main()

{ time_t start,end;

int i;

start=time(NULL);

for(i=0;i3000;i++)

{ printf("\1\1\1\1\1\1\1\1\1\1\n");}

end=time(NULL);

printf("\1: The different is %6.3f\n",difftime(end,start));

}

==============================================================

【程序93】

题目:时间函数举例3

1.程序分析:

2.程序源代码:

/*calculate time*/

#include "time.h"

#include "stdio.h"

main()

{ clock_t start,end;

int i;

double var;

start=clock();

for(i=0;i10000;i++)

{ printf("\1\1\1\1\1\1\1\1\1\1\n");}

end=clock();

printf("\1: The different is %6.3f\n",(double)(end-start));

}

==============================================================

【程序94】

题目:时间函数举例4,一个猜数游戏,判断一个人反应快慢。(版主初学时编的)

1.程序分析:

2.程序源代码:

#include "time.h"

#include "stdlib.h"

#include "stdio.h"

main()

{char c;

clock_t start,end;

time_t a,b;

double var;

int i,guess;

srand(time(NULL));

printf("do you want to play it.('y' or 'n') \n");

loop:

while((c=getchar())=='y')

{

i=rand()0;

printf("\nplease input number you guess:\n");

start=clock();

a=time(NULL);

scanf("%d",guess);

while(guess!=i)

{if(guessi)

{printf("please input a little smaller.\n");

scanf("%d",guess);}

else

{printf("please input a little bigger.\n");

scanf("%d",guess);}

}

end=clock();

b=time(NULL);

printf("\1: It took you %6.3f seconds\n",var=(double)(end-start)/18.2);

printf("\1: it took you %6.3f seconds\n\n",difftime(b,a));

if(var15)

printf("\1\1 You are very clever! \1\1\n\n");

else if(var25)

printf("\1\1 you are normal! \1\1\n\n");

else

printf("\1\1 you are stupid! \1\1\n\n");

printf("\1\1 Congradulations \1\1\n\n");

printf("The number you guess is %d",i);

}

printf("\ndo you want to try it again?(\"yy\".or.\"n\")\n");

if((c=getch())=='y')

goto loop;

}

==============================================================

c语言编程题

/*1,编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。*/

/*#includestdio.h

main()

{

int a=560,b,c;

b=a/60;

c=a%60;

printf("把560分钟换算成用小时和分钟表示时为%d小时%d分钟\n",b,c);

}*/

/*2,编写程序,输入两个整数:1500和350,求出它们的商和余数进行输出。*/

/*#includestdio.h

main()

{

int a,b,c,d;

printf("请输入两个整数:");

scanf("%d%d",a,b);

c=a/b;

d=a%b;

printf("这两个数的商是%d,余数是%d",c,d);

}*/

/*3,编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,

对小数点后第二位数进行四舍五入,最后输出结果。*/

/*#includestdio.h

main()

{

double a,b,c;

float aver;

long h;

printf("请输入三个双精度数:");

scanf("%lf%lf%lf",a,b,c);

aver=(a+b+c)/3.0;

h=(aver*100+5)/10;

aver=(float)h/10;

printf("对它们的平均值保留小数点后一位为:%f",aver);

}*/

/*4,编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a中原来的值给b,

把b中原来的值给c,把c中原来的值给a,然后输出a、b、c。*/

#includestdio.h

main()

{

int a,b,c,temp1,temp2;

printf("请输入三个整数:");

scanf("%d%d%d",a,b,c);

temp1=b;

temp2=c;

b=a;

c=temp1;

a=temp2;

printf("交换后它们分别为%d\t%d\t%d\n",a,b,c);

}

几道简单的C语言题目

【B】2.变量a与b分别初始为10与20,正确的语句是:

A: int a=10, int b=20; B: int a=10, b=20;

C: int a=10; b=20; D: int a=10; b=20,

【C】3.以下选项中正确的C语言常量是:

A: 0xEfGh B: 'XYZ'

C: 12.34e5 D: '\5A'

【A】4.设有double x;char s[50];输出双精度浮点数x和字符串s,正确的语句是:

A: printf("%lf %s",x,s); B: printf("%ld %s",x,s);

C: printf("%lf %s",x,s); D: printf("%lf %s",x,s[50]);

【B】5.语句printf("%.1f,%d\n",10./4,10/8);的输出是:

A: 2.5,1.25 B: 2.5,1

C: 1,1.25 D: 2,1.25

【B】6.设有char ch; 与语句“ch=getchar();”等价的语句是:

A: scanf("%c",ch) B: scanf("%c",ch);

C: printf("%c",ch); D: printf("%c",ch);

【C】7. 设int n,m; 使m为n的十进制百位数的语句是:

A: m = n/100; B: m = n%100;

C: m = n/100%10; D: m = n%10/100;

【C】8.设float x,y; 使y为x的小数部分的语句是:

A: y = (int)x; B: y = int(x);

C: y = x-(int)x; D: y = x-int(x);

【C】9. 与语句“m += (x=5) + (--y);”等价的语句序列是:

A: m=m+x+y; x=5; y=y-1; B: x=5; m=m+x+y; y=y-1;

C: x=5; y=y-1; m=m+x+y; D: y=y-1; m=m+x+y; x=5;

【B】10. 设int n; 对应“n为二位数(10至99)”的判断表达式是:

A: 10=n=99 B: 10=n n=99

C: 10=n || n=99 D: 10=n, n=99

【A】11. 设char ch; 判断“ch为数字字符”的表达式是:

A: ch='0' ch='9' B: ch0 ch9

C: ch='0' || ch='9' D: ch=0 || ch=9

【A】12. 与语句“x+=(a++==b)?c:--d;”功能等价的语句段是:

A: if (a==b) { a=a+1; x=x+c; }

else { a=a+1; d=d-1; x=x+d; }

B: a=a+1;if (a==b) { x=x+c; }

else { d=d-1; x=x+d; }

C: if (a==b) { a=a+1; x=x+c; }

else { a=a+1; x=x+d; d=d-1; }

D: if (a==b) { a=a+1; x=c; }

else { a=a+1; d=d-1; x=d; }

【C】13. 设有in i; 写出下列语句的运行结果:

for (i=0;i5;i++)

printf("%d",i);

A: 0123456 B: 012345

C: 01234 D: 0123

【C】14. 设有char ch; 写出下列语句的运行结果:

for (ch='B';ch='F';ch++)

putchar(ch);

A: ABCDEFG B: ABCDEF

C: BCDEF D: BCDEFG

【A】15. 以下一维数组定义中,正确的是:

A: int a[5] = { 1,2,3,4,5 }; B: int a[5] = 1,2,3,4,5;

C: int a[1 to 5]; D: int a[]

【D】16.以下字符串定义与赋值中,正确的是:

A: char s[80]; s = {'A', 'B', 'C'}; B: char s[80]; s = "ABC";

C; char s[80] = {"A", "B", "C"}; D: char s[80] = "ABC";

【B】17. 在字符串常用函数中,用于复制字符串的函数是:

A: strlen B: strcpy

C: strcat D: strcmp

【B】18. 设有定义:int i, a[10]; 能正确输入a数组各元素的语句是:

A: i=10; scanf("%d", a[i]); B: for(i=0; i=9; i++) scanf("%d", a+i);

C:for(i=0;i10;i++)scanf("%d",a[i]);D:for(i=0;i10;i++)scanf("%d", a);

【B】19. 设有定义:int a[10]={6,7,8,9,10};正确的解释是:

A: 将5个初值依次赋给a[1]至a[5] B: 将5个初值依次赋给a[0]至a[4]

C: 将5个初值依次赋给a[6]至a[10] D: 将5个初值依次赋给a[5]至a[9]

(责任编辑:IT教学网)

更多

推荐网页文字特效文章