文档视界 最新最全的文档下载
当前位置:文档视界 › c语言作业资料

c语言作业资料

c语言作业资料
c语言作业资料

选择作业:

1、输入两个运算量和一个运算符,完成加、减、乘、除、取余运算,输出运算结果。#include"stdio.h"

main( )

{

int x,y,z; char ch;

printf("Enter an operator(+,-,*,/,%):\n");

ch=getchar();

printf("Enter two numbers:");

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

switch(ch)

{

case '+':z=x+y;printf("%d+%d=%d",x,y,z);break;

case '-':z=x-y;printf("%d-%d=%d",x,y,z);break;

case '*':z=x*y;printf("%d*%d=%d",x,y,z);break;

case '/': { if (y==0)

printf("division by zero\n");

else

{z=x/y; printf("%d/%d=%d",x,y,z);}break;}

case '%': {if (y==0)

printf("division by zero\n");

else

{z=x%y; printf("%d%%%d=%d",x,y,z);}break;}

default:printf("The error operator");

}

}

2.用公式f=p*w*s*(1-d)计算运输费。要求运费和路程从

# include

void main( )

{float f,p,w,s,d;

int c;

printf("please input how much mony/T:"); scanf("%f",&p);

printf("please input how weight:"); scanf("%f",&w);

printf("please input how loog:"); scanf("%f",&s);

if(s>=3000) c=12;

else c=s/250;

switch( c){

case 0: d=0;break;

case 1: d=0.02;break;

case 2:

case 3: d=0.05;break;

case 4: case 5: case 6: case 7: d=0.08;break;

case 8: case 9: case 10: case 11: d=0.10;break;

case 12: d=0.15; break; }

f=p*w*s*(1-d);

printf("f=%.2f\n",f);

}

3.区分键盘上的字母、数字、空格和回车字符。

# include

void main( )

{ char c;

printf("Please input a character:\n");

c = getchar();

if(c==' ' || c=='\n')

printf("This is a blank or enter");

else if(c>='0' && c <= '9')

printf("This is a digit.\n");

else if(c>='a' && c <= 'z' ) printf("This is a 大写letter.\n");

else if(c>='A' && c <= 'Z')

printf("This is a 小写letter.\n");

else

printf("This is an other character. \n");

}

实验三

一、编程,输入任意三个数n1,n2,n3,求其中最大的一个数。输入输出示例:

input n1,n2,n3: 2 10.5 8

max=10.50

源程序:

#include

void main( )

{float n1,n2,n3,max;

printf("please input n1,n2,n3:");

scanf("%f%f%f",&n1,&n2,&n3);

max=n1;

if(max

if(max

printf("the max is:%.1f\n",max);

}

运行结果:

please input n1,n2,n3:9 10 3

the max is:10.0

Press any key to continue

二、编程,输入x,计算并输出下列分段函数f(x)的值(保留2位小数)。

x x<1

y= 2x-1 1<=x<10

3x-1 1 x>=10

输入输出示例:

input x: -2.5

f(-2.500000)=-2.5

源程序:

#include

void main()

{float x,y;

printf("please input x:");

scanf("%f",&x);

if(x<1)

y=x;

else if(x>=1&&x<10) y=2*x-1;

else y=3*x-1;

printf("f(%.1f)=%.1f\n",x,y);

}

运行结果;

第一次运行:

please input x:0.5

f(0.5)=0.5

Press any key to continue

第二次运行;

please input x:8

f(8.0)=15.0

Press any key to continue

第三次运行:

please input x:10

f(10.0)=29.0

Press any key to continue

三、编程,把百分制成绩转换成5级记分制,要求用switch语句。

90分以上(包括90):A

80至90分(包括80):B

70至80分(包括70):C

60至70分(包括60):D

60分以下:E

输入输出示例:

input Score: 86

86的等级为B

源程序:

#include

void main()

{float score;

int y;

printf("please input score:");

scanf("%f",&score);

y=(int)(score/10);

switch(y)

{case 0:

case 1:

case 2:

case 3:

case 4:

case 5:

printf("%f的等级为E\n",score); break;

case 6:

printf("%f的等级为D\n",score); break;

case 7:

printf("%f的等级为C\n",score); break;

case 8:

printf("%f的等级为B\n",score); break;

case 9:

case 10:

printf("%f的等级为A\n",score); break;}

}

第一次运行结果:

please input score:100

A

Press any key to continue

第二次运行结果:

please input score:86

86.0的等级为B

Press any key to continue

第三次运行结果:

please input score:50

50的等级为E

Press any key to continue

四、编程,输入2005年的任一个月,输出这个月的天数,要求使用switch语句。输入输出示例:

Input month of 2005: 10

2005年10月有31天

源程序:

#include

void main( )

{int month;

printf("please input a month;");

scanf("%d",&month);

switch(month)

{case 1:case 3:case 5:case 7:

case 8:case 10:case 12:

printf("2005年%d月有31天\n",month); break; case 2:

printf("2005年%d月有28天\n",month); break; case 4:case 6:case 9:case 11:

printf("2005年%d月有30天\n",month); break; default:

printf("input another month please\n3");

}

}

运行结果:

please input a month;1

2005年1月有31天

Press any key to continue

五、改错,对2个整数进行乘、除和求余运算。

源程序(有错误的程序)

#include

void main()

{ char sign;

int x,y;

prnitf(“输入x 运算符y:”);

scanf(“%d%c%d”,&x,&sign,&y);

if(sign==’*’)

printf(“%d * %d = %d\n”,x,y,x*y);

else if(sign==’/’)

printf(“%d / %d = %d\n”,x,y,x/y);

else if(sign==’%’)

printf(“%d %% %d = %d\n”,x,y,x%y);

else

printf(“运算符输入错误”);

}

实验四:

1.调试示例:输入2个正整数m,n,输出它们的最小公倍数和最大公约数。

修改后的程序:#include

void main()

{ int m,n,j,k;

printf("input m n:\n");

while(scanf("%d%d",&m,&n),m<0 || n<0);

j=m;

while(j%n!=0)

j=j+m;

k=(m*n)/j;

printf("最小公倍数是:%d\n最大公约数是:%d\n",j,k);

}

运行结果:

input m n:3 6

最小公倍数是:6

最大公约数是:3

2.编程,输入一批整数,先求出其中的偶数和及奇数和,然后输出偶数和与奇数和的差.输入输出示例:

输入一批整数:10 11 20 33Ctrl+Z

sub=-14

源程序:

#include

void main()

{

int x,sum1=0,sum2=0,sub=0;

printf("请输入一批整数:\n");

while(scanf("%d",&x)!=EOF)

{

if (x%2==0)

sum1+=x;

else

sum2+=x;

sub=sum1-sum2;

}

printf("sum1=%d\nsum2=%d\nsub=%d\n",sum1,sum2,sub);

}

运行结果为:

请输入一批整数:

1 2 3 4

Ctrl+Z

sum1=6

sum2=4

sub=2

3.编程,输入1个正实数eps,计算并输出下式的值,直到最后一项的绝对值小于eps 源程序如下;

#include

void main()

{ float f=0,eps,t=1.0;

int i=1,sign=1;

printf("请输入正实数ep s的值:");

scanf("输入一个正实数%f",&eps);

while(abs(t)>eps)

{

t=1.0/i*sign;

f+=t;

sign=-sign;

i+=4;

}

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

}

运行结果为:

请输入正实数eps的值:0.000001

f=0.878576

4 编程,输入一个整数,求它的各位数字之和及位数。例如123的各位数字之和是6,位数是3.

源程序如下:

#include

void main()

{

int i=0,n,sum=0;

scanf("%d",&n);

if(n<0)

n=-n;

while (n>0)

{

sum+=n%10;

n=n/10;

i++;

}

printf("位数=%d,各位数之和=%d\n",i,sum);

}

运行结果:

134

位数=3;各位数之和=8

5、改错,输入2个整数,分别将其逆向输出。

输入输出示例:

修改后的程序:#include

int fun(int n)

{ int m,y;

y=0;

if(n>0)

m=n;

else

m=-n;

while (m>0)

{ y=y*10+m%10;

m=m/10;

}

if(n>=0) return y;

else return -y;

}

void main()

{ int n,m;

scanf("%d%d",&n,&m);

printf("%d的逆向是%d\t",n,fun(n));

printf("%d的逆向是%d\t",m,fun(m));

}

运行结果:

234 -234

234的逆向是432

-234的逆向是-432

6调试示例,输入正整数的个数n,再输入n个正整数,判断它们是否为素数。素数就是只能被1和自身整除的正整数,1不是素数,2是素数

修改后的程序:

#include

#include

void main()

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

printf("输入正整数的个数n:");

scanf("%d",&n);

printf("输入%d个正整数\n",n);

k=n;

for(j=0;j

{ scanf("%d",&m);

n=sqrt(m);

for(i=2;i

if(m%i==0) break;

if(i>n)

printf("%d是一个素数!\n",m);

else

printf("%d不是一个素数!\n",m);

}

}

运行结果:

输入正整数的个数n:3

输入3个正整数:2 5 9

2不是一个素数;

5是一个素数;

9不是一个素数;

7.编程,输出101-115之间不能被3整除的数,每行输出5个。要求使用continue语句。源程序:

#include

void main()

{

int n,count=0;

for(n=101;n<=115;n++)

if(n%3==0) continue;

else

{ printf("%d ",n);

count++;

if(count%5==0)

printf("\n");

}

}

运行结果:

101 103 104 106 107

109110 112 113 115

8.编程,猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第10天早上想再吃的时候,见只剩下一个桃子了。求第1天共摘了多少桃子

源程序:

#include

void main()

{ int day,total,sum=1;

for(day=1;day<=9;day++)

{

total=(sum+1)*2;

sum=total;

}

printf("%d\n",total);

}

运行结果:1534

方法二

#include

void main()

{

int day,x;

day=9;

x=1;

while(day>0)

{x=(x+1)*2;

day--;

}

printf("the total is %d\n",x);

}

9.在100-1500内找出所有的亲密数对,并输出每对亲密数对。

输入输出示例:

(220,284)(284,220)(1184,1210)(1210,1184)

源程序:

# include

int yun(int x);

void main()

{ int a,b;

for (a=100;a<=1500;a++)

{

b=yun(a);

if (b>=100&&b<=1500)

{

if ((yun(b)==a)&&(a!=b)) {printf("(%5d%5d)",a,b);printf("\n");} }

}

}

int yun(int x)

{ int i,sum=0;

for(i=1;i

if(x%i==0) {sum+=i;}

return sum;

}

运行结果:

( 220 284)

( 284 220)

( 1184 1210)

( 1210 1184)

Press any key to continue

函数作业:

4.4,写一个将整数转换成字符串的函数。

源程序:

#include

void main()

{int i=0,j,x;

char c[10],temp;

scanf("%d",&x);

while(x!=0)

{c[i]=x%10+'0';

x=x/10;

i++;}

c[i]='\0';

for(j=0;j<=i/2;j++)

{temp=c[j];c[j]=c[i-j-1];c[i-j-1]=temp;}

for(j=0;j

printf("%3c",c[j]);

printf("\n");

}

运行结果:

123

1 2 3

Press any key to continue

4.5写出计算Ackermann函数Ack(m,n)的递归计算函数,对于m>=0,n>=0, Ack(m,n)定义为Ack(0,n)=n+1

Ack(m,0)= Ack(m-1,1)

Ack(m,n)= Ack(m-1,Ack(m,n-1)), m>0, n>0

源程序:

#include

int ack(int m,int n)

{

if(m==0)

return (n+1);

else if(n==0)

return ack(m-1,1);

else

return ack(m-1,ack(m,n-1));

}

void main()

{int m,n;

printf("input m,n(m>=0,n>=0):");

scanf("%d%d",&m,&n);

printf("ack(%d,%d)=%d\n",m,n,ack(m,n));}

4.6分别写出Hermite多项式Hn(x)之值的递推和递归函数,Hn(x)定义如下:H0(x)=1

H1(x)=2*x;

Hn(x)=2*x* Hn-1(x)-2*(n-1) Hn-2(x), x>1

源程序:

#include

int hermite(int n,int x)

{

if(n==0)

return 1;

if(n==1)

return (2*x);

if(x>1)

return (2*x*hermite(n-1,x)-2*(n-1)*hermite(n-2,x));

}

void main()

{int n,x;

printf("input n,x:");

scanf("%d%d",&n,&x);

printf("hermite(%d,%d)=%d\n",n,x,hermite(n,x));}

运行结果:

input n,x:5 5

hermite(5,5)=80600

Press any key to continue

实验五:

1.某数列为K(n)的定义为:求该数列的第六项k(6)。

k(n)=1 n=1

k(n-1)×2 n为偶数

k(n-1)×3 n为奇数

源程序:

#include

float k(int n)

{

int m;

if(n==1) m=1;

else if(n%2==0) m=k(n-1)*2;

else m=k(n-1)*3;

return (m);

}

void main( )

{int i;

int j;

printf("input a integer number:");

scanf("%d",&i);

if(i<=0)printf("n<=0,data error!");

else

{j=k(i); printf("\nk(%d)=%d",i,j);}

}

2. 写出判断素数的函数,在主函数中输入一序列整数(ctrl+z结束),输出是否是素数的信息。源程序:

#include

#include

int p(int n);

void main()

{int n,x,t=0;

while(scanf("%d",&n)!=EOF)

{x=p(n);

if(x==1) {printf(" %3d ", n);t++;}

if(t%10==0) printf("\n");

}

}

int p(int n)

{

int i,k;

k=sqrt(n);

for(i=2;i<=k;i++)

if(n%i==0) return 0;

return 1;

}

3. 写两个函数,求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。

源程序:

#include

int gcd(int n, int m)

{ int r,t;

if(m

else{

r=m%n;

while(r!=0)

{m=n;

n=r;

r=m%n;

}

return n;

}

}

int bei( int m,int n )

{

return m * n/ gcd( m, n) ;

}

void main()

{

int a,b;

printf("输入两个数\n");

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

int c=gcd(a,b);

int d=bei(a,b);

printf("最大公约数为:%d\t\n最小公倍数为:%d\n",c,d);

}

4.输出Fibonacci序列前20个数,用函数来实现.

f(n)=f(n-1)+f(n-2) 当n>2

f(2)=f(1)=1 当n=1或n=2

源程序:

#include

int f(int n)

{ int m;

if(n==1||n==2) m=1;

else m=f(n-2)+f(n-1);

return m;

}

void main( )

{int i;

int n;

printf("input a integer number:");

scanf("%d",&n);

if(n<=0) printf("n<=0,data error!");

else

{for (i=1;i<=n;i++) printf("\tf(%d)=%d\t",i,f(i));

}

}

数组实验:

1编程:输入一个正整数n(0

源程序:

#include

void main()

{

int i,j,n,x,a[10],t;

printf("输入数据的个数n:");

scanf("%d",&n);

printf("输入%d个整数:",n);

for(i=0;i

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

printf("输入要插入的整数:");

scanf("%d",&x);

for(i=0;i

{ if(x>a[i]) continue;

j=n-1;

while(j>=i)

{

a[j+1]=a[j];

j--;

}

a[i]=x;

break;

}

if(i==n) a[n]=x;

for(i=0;i

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

putchar('\n');

}

2.编程,输入1个正整数n(1

源程序:

#include

void main()

{

int i,n,index,temp,a[10],min,max;

printf("请输入整数个数n(n<=10):");

scanf("%d",&n);

printf("请输入%d个整数:\n",n);

for(i=0;i

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

min=max=a[0];

for(i=0;i

{

if(a[i]

{min=a[i];index=i;}}

temp =a[0];a[0]=a[index];a[index]=temp;

for(i=1;i

{if(a[i]>max)

{max=a[i];index=i;}}temp=a[n-1];a[n-1]=a[index];a[index]=temp;

printf("交换后的%个整数为:",n);

for(i=0;i

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

}

运行结果:

请输入整数个数n(n<=10):5

请输入5个整数:

2 1 5 10 9

交换后的个整数为:1 2 5 9 10 Press any key to continue

3.编程,输入1个正整数n(1

方法一:选择排序法

源程序:

#include

#include

void main()

{int i,index,temp,n,j,a[10];

printf("Input a number please: ");

scanf("%d",&n);

printf("Input %d numbers:",n);

for(i=0;i

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

for(i=0;i

{index=i;

for(j=i+1;j<=n-1;j++)

if(abs(a[j])

temp=a[i];a[i]=a[index];a[index]=temp;}

printf("exchanged %d numbers:",n);

for(i=0;i

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

printf("\n");

}

方法二:冒泡法

源程序:

#include

#include

void main()

{int i,temp,n,j,a[10];

printf("Input a number please: ");

scanf("%d",&n);

printf("Input %d numbers:",n);

for(i=0;i

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

for(j=0;j<=n-2;j++)

{

for(i=0;i<=n-j-2;i++)

if(abs(a[i])>abs(a[i+1])) {temp=a[i];a[i]=a[i+1];a[i+1]=temp;}

}

printf("exchanged %d numbers:",n);

for(i=0;i

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

printf("\n");

}

运行结果:

Input a number please: 10

Input 10 numbers:-11 2 8 5 -3 -16 9 7 6 10

exchanged 10 numbers: 2 -3 5 6 7 8 9 10 -11 -16

Press any key to continue

4.编程,平面上有n个点,求所有各点之间的最长距离。要求定义和调用函数计算距离源程序:

#include

#include

float fun(float x0,float x1,float y0,float y1)

{float y;

y=sqrt(pow((x0-x1),2)+pow((y0-y1),2));

return y;}

void main()

{float x[5],y[5];

int i,j;

float max=0.0,t=0.0;

printf("please input 5 numbers:");

printf("横坐标:");

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

scanf("%f",&x[i]);

printf("纵坐标:");

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

scanf("%f",&y[i]);

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

{for(j=i;j<4;j++)

{t=fun(x[i],x[j+1],y[i],y[j+1]);

if(max

max=t;}}

printf("the longest distance=%.2f\n",max);

}

输入点数:5

输入5个点的坐标:

1 2.5

3.2 3.7

6.5 2.3

5.1 0.6

3.6 1.2

最长距离是5.50

方法二:

#include

#include

void main( )

{ float a[20][2],b[20][20],x,y;

int n,i,j,row,cel;

printf("输入点数:"); scanf("%d",&n);

printf("输入%d点的坐标:",n);

for (i=0;i

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

scanf("%f",&a[i][j]);

printf("\n");

for (i=0;i

for (j=0;j

{x=a[i][0]-a[j][0];

y=a[i][1]-a[j][1];

b[i][j]=hypot(x,y);

}

printf("\n");

for (i=0;i

{ for (j=0;j

printf("%.2f\t" ,b[i][j]);

printf("\n");}

row=0;cel=0;

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

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

if(b[i][j]>b[row][cel]) {row=i;cel=j;}

printf("\n第%d点到第%d点距离最大是%.2f\n" ,row+1,cel+1,b[row][cel]);

}

5.编程,输入一个n行m列(n<=4,m<=4)的数组,先以n行m列的格式输出该数组,然后找出该数组中值最小的元素,输出该元素及其行下标和列下标。

程序如下:

#include

void main()

{int n,m,i,j,a[4][4],min,max,min_row,min_col,max_row,max_col;

printf("输入行数");

scanf("%d",&n);

printf("输入列数");

scanf("%d",&m);

for(i=0;i<=n-1;i++)

{for(j=0;j<=m-1;j++)

scanf("%d",&a[i][j]);}

for(i=0;i<=n-1;i++)

{for(j=0;j<=m-1;j++)

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

printf("\n");}

min_row=min_col=0;

min=a[0][0];

for(i=0;i<=n-1;i++)

for(j=0;j<=m-1;j++)

if(a[i][j]

{min=a[i][j];

min_row=i; min_col=j;}

max=a[0][0];

for(i=0;i<=n-1;i++)

for(j=0;j<=m-1;j++)

{if(a[i][j]>max)

max=a[i][j];

max_row=i; max_col=j;}

printf("最大值是:a[%d][%d]=%d,最小值是:a[%d][ %d]=%d\n"

,max_row,max_col,max,min_row,min_col,min);}

运行结果

输入行数3

输入列数2

1 2 3 4 5 6

1 2

3 4

5 6

最大值是:a[2][1]=6,最小值是:a[0][ 0]=1

Press any key to continue

(完整版)c语言函数练习题附答案

函数 一、选择题 1.在c语言中以下不正确的说法是:() A.实参可以是常量、变量、或表达式 B.形参可以是常量、变量或表达式 C.实参可以为任意类型 D.形参应与其对应的实参类型一致 2.以下程序有语法性错误,有关错误原因的正确说法是:() int main() { int G=5,k; void prt_char(); …… k=prt_char(G); …… } A.语句void prt_char();有错,它是函数调用语句,不能用void说明 B.变量名不能使用大写字母 C.函数说明和函数调用语句之间有矛盾 D.函数名不能使用下划线 3.以下正确的说法是:() A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可嵌套 C.函数的定义和调用均不可以嵌套 D.函数的定义和调用均可以嵌套 4.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是:() A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参 5.以下所列的各函数首部中,正确的是:() A、 void play(var :Integer,var b:Integer) B、 void play(int a,b) C、 void play(int a,int b) D、 Sub play(a as integer,b as integer) 6.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是:() A、地址传递 B、单向值传递 C、由实参传给形参,再由形参传回实参 D、传递方式由用户指定 7.有以下程序 void fun (int a,int b,int c) { a=456; b=567; c=678;}

C语言实训作业1

《C语言通识教育》实训指导书 (第一次) (2学时) 何天成 2016年月日

前言 C 语言是现代最流行的通用程序设计语言之一,它既具有高级程序设计语言的优点,又具有低级程序设计语言的特点,既可以用来编写系统程序,又可以用来编写应用程序。因此,C 语言正在被迅速地推广和普及。上机实验是该课程教学的一个重要环节,因此要求学生做一定数量的上机实验。本指导书可增强同学上机实验的针对性。整个教学和实验中,采用VC++6.0 作为实验环境,强调学生切实培养动手实践能力,掌握调试程序的方法,通过调试理解C语言程序运行的过程以及C 语言的语法规则,为后续的课程设计,计算机等级考试及其他应用做好充分的准备。 本实验指导书通过大量的实例,循序渐进地引导学生做好各章的实验。共计约14次实训课,其中每一讲内容分1、2两次上课。每个实验内容结构如下: (1)实验学时 (2)实验目的 (2)预习要求 (4)实验内容 (5)实验注意事项 (6)思考题 其中思考题属于扩展应用部分,学生可以根据自己的学习情况选择完成。 在实验之前,要求学生对实验作好预习工作。在实验中,学生根据实验指导中的内容进行验证与总结,然后再去完成实验内容中安排的任务。一般要求准备好相关代码,实验课中最好以调试和讨论为主。 实验结束后,应及时先以电子版的形式填写实验报告,然后再以A4纸打印。第3次实训课上交前2次实训报告,要求源程序要以标准格式打印实验报告上都必须粘贴上每个程序的运行结果截图,并在每个程序的输出截图中添加上自己的姓名/学号/专业等信息,以表示程序执行结果确是自己调试,而不是copy 别人的运行结果。通报告具体内容可根据实验内容和实验要求进行增删。实验报告一般要求包含:(1)实验题目 (2)设计思路或算法分析 (3)流程图 (4)程序源代码 (5)程序运行结果及分析

c语言作业答案

No.: Name: 第1讲C语言概述 注:本系列习题中符号表示一串字符中的空格,符号表示下划线,符号ê表示换行回车,即键盘上Enter键。 一、选择题 1. 一个C程序的执行是从A 。 A) 本程序main函数开始,到main函数结束 B) 本程序文件第一个函数开始,到最后一个函数结束 C) 本程序文件第一个函数开始,到本main函数结束 D) 本程序main函数开始,到本程序文件最后一个函 数结束 2. 以下叙述不正确的是D 。 A) 一个C源程序必须包含一个main函数 B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面 3. 以下叙述正确的是C 。 A) 在对一个C程序进行编译的过程中,可发现注释中 的拼写错误 B) 在C程序中,main函数必须位于程序的最前面 C) 语言本身没有输入输出语句 D) C程序的每行中只能写一条语句 4. 一个C语言程序是由B 。 A) 一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成 5. 以下叙述中正确的是C 。 A) C语言比其他语言高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为 语言的表达形式 D) C语言出现的最晚,具有其他语言的一切优点 6. 下列叙述中正确的是D 。 A) C语言编译时不检查语法 B) C语言的子程序有过程和函数两种 C) C语言的函数可以嵌套定义 D) C语言的函数可以嵌套调用 7. 以下叙述中正确的是A 。 A) 构成C程序的基本单位是函数 B) 可以在一个函数中定义另一个函数 C) main函数必须放在其他函数之前 D) 所有被调用的函数一定要在调用之前进行定义

C语言大作业报告

目录 一、设计题目 二、目标和需求分析 三、开发工具 四、应用平台 五、程序模块 1、游戏盒子 2、2048 3、扫雷 4、贪吃蛇 六、开发日志 七、程序调试及运行 八、程序开发总结 总结:虽然做出来的东西真的没什么技术水平,但是我们尽量把这个东西的每个方方面面做完整。

目标和需求分析一个小的游戏盒子,可以用来启动其它游戏,当然,其它游戏也是我们大作业的编写内容,平时可以玩玩用来打发时间 用到的工具VS2005 Easyx图形库 Pthread线程库 Hge 分工 秦贤康 组织大家,编写主程序,及构思计划,技术指导 王尧 所有的文件处理,数据算法方面优化 王懿晨 合作2048模块 杨梓晗 图片资源加工,音乐裁剪,按钮制作 程维驰 合作扫雷模块 应用平台:WINDOWS X64

程序功能模块: 一、 安装包:(写入开始菜单快捷方式,桌面快捷方式,开机启动等)//pascal 脚本编写 #define MyAppName "C 大作业" #define MyAppVersion "2.0" #define MyAppPublisher "五人小组" #define MyAppExeName "1.exe" [Setup] AppId={{49DB1DB4-FAE9-4ACB-A4B9-E5C420C5F10B} AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} DefaultDirName={pf}\{#MyAppName} DisableDirPage=yes DefaultGroupName={#MyAppName} DisableProgramGroupPage=yes (剩余代码未全部给出) 安装包 内嵌:C 语言报告 游戏盒子 开机启动,桌面快捷方式等 进入动画,左侧动画 启动模块 通知,和显示游戏信息 2048 扫雷 贪吃蛇 主界面信息显示 通知栏信息显示 意见箱

C语言函数练习题及答案

1 【单选题】 在下列关于C函数定义的叙述中,正确的是A、 函数可以嵌套定义,但不可以嵌套调用; B、 函数不可以嵌套定义,但可以嵌套调用; C、 函数不可以嵌套定义,也不可以嵌套调用; D、 函数可以嵌套定义,也可以嵌套调用; 我的答案:B得分:分

2 【单选题】 下面函数调用语句含有实参的个数为nc((exp1,exp2),(exp3,exp4,exp5)); A、 1 B、 2 C、 4 D、 5

我的答案:B得分:分 3 【单选题】 C语言中函数返回值的类型是由以下哪个选项决定的A、 函数定义时指定的类型; B、 return语句中的表达式类型; C、 调用该函数时的实参的数据类型; D、 形参的数据类型;

我的答案:A得分:分 4 【单选题】 以下关于函数叙述中,错误的是 A、 函数未被调用时,系统将不为形参分配内存单元; B、 实参与形参的个数必须相等,且实参与形参的类型必须对应一致; C、 当形参是变量时,实参可以是常量、变量或表达式; D、

如函数调用时,实参与形参都为变量,则这两个变量不可能共享同一内存空间; 我的答案:B得分:分 5 【单选题】 若函数调用时参数为基本数据类型的变量,以下叙述正确的是A、 实参与其对应的形参共享内存存储单元; B、 只有当实参与其对应的形参同名时才共享内存存储单元; C、 实参与对应的形参分别占用不同的内存存储单元;

D、 实参将数据传递给形参后,立即释放原先占用的内存存储单元; 我的答案:C得分:分 6 【单选题】 函数调用时,实参和形参都是简单变量,它们之间数据传递的过程描述正确的是 A、 实参将地址传递给形参,并释放原先占用的存储单元; B、 实参将地址传递给形参,调用结束时形参再将此地址回传给实参; C、 实参将值传递给形参,调用结束时形参再将其值回传给实参;

c语言作业

提交作业规范: (1)你的每次作业的cpp文件放在文件夹中,文件夹命名:学号+姓名+(第几次),(例如:“2014218899张三(第二次)“) (2)上传到文件夹:偶春生\班级。千万别传错。 注意: (1)每做完一题,请用“file”下的“close workspace”关闭工作区,再重新开始做下一题。(2)如果不能联网,请改网关地址:252或253 (3)开机进入“basis” 第一次上机题目: (1)从键盘上输入四个整数,计算并输出四个数的平均值。 (2)输入球的半径,计算并输出球的体积和表面积。 (3)输入一个三位正整数,分别输出该数的个位、十位和百位。(提示:用%运算符提取数字,如123%10=3,用/运算符移除已提取的数字,如123/10 = 12) (4)请测试++、--、关系和逻辑运算符。 第二次上机题目: (1)平面上有一园C:(x-3)2+(y-4)2= 25;输入点P(x,y)的坐标值,判断P点在园C内(包括园上)还是园C外。 (2)输入一英文字符,如果是大写字符,请输出:“您输入的是大写字符。”,如果是小写字符,请输出:“您输入的是小写字符。”, (3)某人某天开始“三天打鱼,两天晒网”,问该人在以后的第n天是打鱼还是晒网?(4)输入火车的出发时间和到站时间,计算火车的运行时间。(出发时间和到站时间用四位整数表示,如1230表示12点30分,假设火车不跨天运行。) (5)从键盘上输入三个整数,分别存放在变量num1, num2, num3中,编写程序对这三个数进行排序,使得num1 <=num2<=num3。 第三次上机题目: (1)输入十个数,分别计算出其中正数、负数的和。 (2)输出1—100内能被3整除或个位数是3的数。 (3)打印出大写英文字母,每行最多输出十个。 (4)输入十个数,求出其中的最小值。 (5)求出e的值,e = 1+1+1/2!+1/3!+…+1/n! (n取10) 第四次上机题目: (1)输出100—1000之间的质数。 (2)任意输入一个数,输出这个数的所有因子。(如输入12,输出1,2,3,4,6,12) (3)输出1-100间的同构数,所谓同构数是指一个数出现在这个数平方的右侧(如6和25均为同构数)。 (4)求x2+y2=2009的整数解。(提示,x,y的范围在[1,45]之间,用双重循环枚举求解)(5)用嵌套循环打印如下图形:

15秋《C语言》在线作业2

15秋《C语言》在线作业2 试卷总分:100 测试时间:-- 试卷得分:100 单选题 一、单选题(共20 道试题,共100 分。)得分:100V 1. 以下叙述中不正确的是( ) A. 在不同的函数中可以使用相同的名字的变量 B. 函数中的形式参数是局部变量 C. 在一个函数内定义的变量只在本函数范围内有效 D. 在一个函数内的复合语句中定义的变量在本函数范围内有效 满分:5 分得分:5 2. 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为( ) A. D B. 68 C. 不确定的值 D. C 满分:5 分得分:5 3. 以下描述中正确的是( ) A. 由于do~while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 B. do~while循环由do开始,用while结束,在while(表达式) 后面不能写分号 C. 在do~while循环体中,一定要有能使while后表达式值变为零("假")的操作 D. do~while循环中,根据情况可以省略while 满分:5 分得分:5 4. 下面程序的运行结果是( ) main() {char a[80]="AB",b[80]="LMNP"; int i=0;strcat(a,b); whi1e(a[i++]!='\0')b[i]=a[i];puts(b);} A. LB B. ABLMNP C. AB D. LBLMNP 满分:5 分得分:5 5. 以下不正确的说法是( ) A. register变量可以提高变量使用的执行效率 B. register变量由于使用的是CPU的寄存器,其数目是有限制的 C. extern变量定义的存储空间按变量类型分配 D. 全局变量使得函数之间的“耦合性”更加紧密,不利于模块化的要求 满分:5 分得分:5 6. 以下正确的描述是( ) A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B. 函数的定义不可以嵌套,但函数的调用可以嵌套 C. 函数的定义和函数的调用均不可以嵌套 D. 函数的定义和函数的调用均可以嵌套 满分:5 分得分:5 7. 当把以下四个表达式用做if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是( )

C语言上机作业试题5套含答案

第一次上机作业(2014): 要求: ?独立完成,上机调试通过后上交 ?作业提交邮箱: ?邮件主题命名:班级学号姓名(第1次作业), 例如:电1301班2王鹏(第1次作业) ?以附件形式将每次作业的所有程序源程序压缩打包后提交,压缩文件命名格式同上。 ?程序必须采用缩进格式 1.大写字母转换成小写字母 从键盘输入一个大写英文字母,输出相应的小写字母。 例:输入G 输出g 2.求平方根 输入一个实数x,计算并输出其平方根(保留1 位小数)。 例:输入17 输出The square root of 17.0 is 4.1 3.温度转换 设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32) a)输入华氏温度(实型) b)输出的摄氏温度结果保留两位小数 例:Please input Fahrenheit temperature: 76.8 The corresponding Celsius temperature is 24.89 4. 计算旅途时间 输入二个整数time1 和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 (输入的有效的时间范围是0000 到2359,不需要考虑出发时间晚于到达时间的情况。) 例:输入712 1411 (出发时间是7:12,到达时间是14:11) 输出The train journey time is 6 hours 59 minutes. 5. 数字加密 输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。 例:输入1257 输出The encrypted number is 4601 思考题:你能否编程找出谁做的好事? 有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。 ?A说:不是我。 ?B说:是C。 ?C说:是D。 ?D说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 第二次上机作业(2014): 要求: ?独立完成,程序必须采用缩进格式,上机调试通过后上交

C语言大作业报告范文

学院XX学院

目录 1 摘要 (3) 1.1设计题目 (3) 1.2设计容 (3) 1.3开发工具 (3) 1.4应用平台 (3) 2 详细设计 (3) 2.1程序结构 (3) 2.2主要功能 (3) 2.3函数实现 (3) 2.4开发日志 (4) 3 程序调试及运行 (4) 3.1程序运行结果 (4) 3.2程序使用说明 (4) 3.3程序开发总结 (4) 4 附件(源程序) (4)

1 摘要 1.1 设计题目 (A)求最大数;(B)高次方数的尾数 1.2 设计容 (A)求555555的约数中最大的三位数; (B)求13的13次方的最后三位数1.3 开发工具 Visual C++ 6.0和Win32。 1.4 应用平台 Windows XP 32位 2 详细设计 2.1 程序结构 (A)求最大数

定义变量a、b、c,a从100至999递增,b为555555,用b除以a,判断是否可以整除,若可以,则把a的值赋给c,a自加1;若不可,a自加1。重复以上步骤,直到a>999,输出c。循环语句采用for 循环。 (B)高次方数的尾数

定义变量i、j,i从1至13递增,j初值为1。用j乘以13,用得到的乘积除以1000并取其余数,赋给j,i自加1。重复以上步骤,直到i>13,输出j。循环语句采用for循环。

2.2 主要功能 程序功能:(A)求555555的约数中最大的三位数; (B)求13的13次方的最后三位数。 原理和方法: (A)题目的原理和方法:因为要求的是三位数,就用555555从小到大依次除以100到999的所有数,并判断能否整除,最后一个可以整除555555的数即为所求。循环语句采用for循环。 (B)题目的原理和方法:乘积的最后三位数只与乘数和被乘数的后三位数有关,因此用1乘以13,再除以1000并取余数,用余数乘以13,再除以1000并取余数,依次进行下去,累乘13个13后除以1000取得的余数即为所求。循环语句采用for循环。 2.3 函数实现 (A)求最大数 int a,b=555555,c; /*定义变量,赋初值*/ for(a=100;a<=999;a++) /*FOR循环*/ { if(b%a==0) /*利用IF语句判断b是否可以被a整除*/ c=a; /*将555555的约数赋给c*/ } printf("%d\n",c); /*输出c*/ (B)高次方数的尾数 int i,j=1; /*定义变量,赋初值*/ for(i=1;i<=13;i++) /*FOR循环*/ { j=j*13%1000; /*将j乘以13的乘积的后三位数赋给j*/ } printf("%d\n",j); /*输出j*/ 2.4 开发日志 (A)选定这个题目后,我先分析此题用何种算法完成,确定了使用FOR循环并限定除数围,然后画出程序框图,再一步步编写源代码。调试过程很顺利,只有一个地方忘加了“;”。运行程序后,结果非常满意。 (B)这个题目不难,但是也不简便,我想到只取三位数的方法,并使用FOR循环,然后画出程序框图,再一步步编写源代码。调试过程发现对其中一个变量的初值是1还是13有待解决,分析程序后发现应该用1,然后进一步调试,运行,直至结果正确。

C语言函数题库及答案

C语言函数题库及答案 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

第六部分函数 一、单项选择题 1.C语言中的函数返回值的类型是由(D)决定 A.return语句中的表达式B.调用函数的主调函数 C.调用函数时临时D.定义函数时所指定的函数类型 2.下面不正确的描述是(B)。 A.调用函数时,实参可以是表达式 B.调用函数时,实参和形参可以共用内存单元 C.调用函数时,将形参分配内存单元 D.调用函数时,实参与形参的类型必须一致 3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是 (D) A.地址传递B.值传递 C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式 4.下面的函数调用语句中含有(A)个实参 inta,b,c; intsum(intx1,intx2); …… total=sum((a,b),c); A.2B.3C.4 D.5 5.在C语言中(C) A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义和调用均不可以嵌套 C.函数的定义不可以嵌套,但是函数的调用可以嵌套 D.函数的定义和调用均可以嵌套 6.关于C语言中的return语句正确的是(C) A.只能在主函数中出现 B.在每个函数中都必须出现 C.可以在一个函数中出现多次 D.只能在除主函数之外的函数中出现 7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是(D) (floatx[],intn) (float*x,intn) (floatx[10],intn) (floatx,intn) 8.在C语言中,函数的数据类型是指(A) A.函数返回值的数据类型 B.函数形参的数据类型 C.调用该函数时的实参的数据类型 D.任意指定的数据类型 9.已知如下定义的函数: fun1(a) {printf("\n%d",a); } 则该函数的数据类型是(C)

东莞理工学院C语言网上作业

《C语言程序设计》第2章作业 一、单选题(每小题5分,共100分,得分45 分) 1、1.关于C程序的构成描述,_________是不正确的。 A、一个源程序至少且仅包含一个main函数,也可包含一个main函数和若干个其他函数。 B、函数由函数首部和函数体两部分组成,二者缺一不可。 C、函数首部通常是函数的第1行,包括:函数属性、函数类型、函数名、函数参数等,不管有无函数参数,都必须用一对圆括号括起来。 D、函数体通常在函数首部下面,用一对花括号将声明部分和执行部分括起来,但不能为空。参考答案:D 2、2.C程序中,不管是数据声明还是语句,都必须有一个结束符,它是C语句的必要组成部分,该符号是_________。 A、逗号“,” B、句号“。” C、分号“;” D、单撇号“’”参考答案:C 3、3.下列关于C程序的运行流程描述,______是正确的。 A、编辑目标程序、编译目标程序、连接源程序、运行可执行程序。 B、编译源程序、编辑源程序、连接目标程序、运行可执行程序。 C、编辑源程序、编译源程序、连接目标程序、运行可执行程序。 D、编辑目标程序、编译源程序、连接目标程序、运行可执行程序。 参考答案:C 4、5.描述或表示算法有多种方法,______不是常用的表示方法。 A、自然语句 B、流程图或N-S图 C、伪代码 D、效果图参考答案:D 5、6.下面四个哪一个是C语言正确的标识符。 A、2xy B、data_file C、break D、a@https://www.docsj.com/doc/1710656839.html, 参考答案:B 6、7.C语言是一种结构化的程序设计语言,任何程序都可以将模块通过3种基本的控制结构进行组合来实现,这三种基本的控制结构是指______。 A、分支结构、循环结构、函数结构 B、顺序结构、选择结构、函数结构 C、顺序结构、分支结构、循环结构 D、以上描述都不正确参考答案:C 7、下列关于算法特性的描述,______是不正确的。 A、有穷性:指一个算法应该包含有限的操作步骤,而不能是无限的。 B、确定性:指算法的每一个步骤都应当是确定的,不应该是含糊的、模棱两可的。 C、有效性:指算法中的每一个步骤都应当能有效地执行,并得到确定的结果。 D、输入/输出性:指算法中可以有输入/输出操作,也可以没有输入/输出操作。 参考答案:D 8、关于运行一个C程序的描述,______是正确的。 A、程序总是从main()函数处开始运行,当main()函数执行结束时,程序也就执行结束。 B、程序总是从main()函数处开始运行,当调用其它函数时,也可在其它函数中执行结束。 C、当程序中无main()函数时,可以设置一个主控函数来代替main()函数,从而达到运行程序的目的。 D、以上描述都不正确。参考答案:A 9、下列关于C程序中复合语句的描述,______是正确的。 A、用一对圆括号“( )”将若干语句顺序组合起来就形成一个复合语句。

C语言大作业(仅供参考)

实验综合练习一 打印万年历 (1)已知公元1年1月1日是星期一,计算输入的年月日是星期几?编程如下: #include void main() { int i,year,month,day,day_of_year,day_of_month; long sumday=0; printf("请先输入年、月、日,中间以空格或换行符间隔:\n"); scanf("%ld%ld%ld",&year,&month,&day); for(i=1;i<=year-1;i++) { if(i%400==0||i%100!=0&&i%4==0) day_of_year=366; else day_of_year=365; sumday=sumday+day_of_year; } for(i=1;i<=month-1;i++) { if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) day_of_month=31; else if(i==4||i==6||i==9||i==11) day_of_month=30; else if(i==2) { if(year%400==0||year%100!=0&&year%4==0) day_of_month=29; else day_of_month=28; } sumday=sumday+day_of_month; } sumday=sumday+day; i=sumday%7; if(i==0) i=7; printf("%ld年%ld月%ld日是星期%d\n",year,month,day,i); } 为了使输出的星期为大写且将星期7变成星期天,可作如下改动:#include void main()

C语言_函数习题

函数习题 1.以下函数值的类型是________。 fun(float x) { float y; y=3*x-4; return y; } A)int B)不确定 C)void D)float 正确答案:A(知识点:函数的定义) 试题分析:在函数定义时,函数名前没有函数类型,则默认函数类型为int类型。 2.有如下函数调用语句: fun(rec1,rec2+rec3,(rec4,rec5)); 该函数调用语句中,含有的实参个数是________。 A)3 B)4 C)5 D)有语法错 正确答案:A(知识点:函数的调用) 试题分析:在该函数调用中,含有的实参个数是3个。其中,第二个实参是rec2+rec3,是一个算术表达式,第三个实参是(rec4,rec5),是一个逗号表达式。如果实参是表达式,则首先计算表达式的结果,再将表达式的值传递给形参。 3.请在以下程序第一行的填空处填写适当内容,使程序能正确运行。________ (double,double)

main() { double x,y; scanf("%lf%lf",&x,&y); printf("%lf\n",max(x,y)); } double max(double a,double b) {return(a>b?a:b);} 正确答案:double max(知识点:函数的声明) 试题分析:当被调用的函数定义处在函数调用后且不为int类型时,在函数调用前必须对被调用函数进行声明。对函数进行声明有下列三种形式: (1)类型名函数名(类型1 形参1,类型2 形参2,…,类型n 形参n); (2)类型名函数名(类型1,类型2,…,类型n); (3)类型名函数名(); 4.以下程序的输出结果是________。 t(int x,int y,int cp,int dp) { cp=x*x+y*y; dp=x*x-y*y; } main() { int a=4,b=3,c=5,d=6; t(a,b,c,d);

C语言作业2

期待的输出时间限制内存限制#include main() { int a,b,c,q,e,f,g,h,i,j,k,m,n,p,x,y,z; scanf("%1d",&a); scanf("%1d%1d%1d%1d%1d",&b,&c,&q,&e,&f); scanf("%1d%1d%1d%1d%1d",&g,&h,&i,&j,&k); x=a+c+e+g+i+k; y=b+q+f+h+j;

n=m-1; z=n%10; p=9-z; printf("%d\n",p); } H2:数制转换(选作) 成绩: 5 / 折扣: 0.8 我们通常使用的都是十进制的数字,但其实在生活中也经常会使用其它进制。 这个题目会给你两个不同的数字,它们不属于同一进制,要求你计算出当它们分别处于何种进制之中时,两个数字相等。譬如12 和 5 ,在十进制下它们是不等的,但若12 使用 3 进制而5 使用六进制或十进制时,它们的值就是相等的。因此只要选择合适的进制,12 和5 就可以是相等的。 程序的输入是两个数字M 和N( 其十进制的值不超过1000000000) ,它们的进制在2~36 之间。对于十以下的数字,用0~9 表示,而十以上的数字,则使用大写的A~Z 表示。 求出分别在2~36 哪种进制下M 和N 相等。若相等则输出相应的进制,若不等则输出错误信息。当然了,对于多种可能成立的情况,找出符合要求的进制最小的一组就行了。信息的格式见测试用例。 测试输入期待的输出 制 #include"string.h" #include"stdio.h"

{ char a[N],b[N],d[N],e[N],d0[N]; int i,j,o,r,g,h,w,t,l,k,max1,max2; double p[N],q[N]={0},u[N],v[N]={0},c[N],f[N],m,n; for(i=0;i='\x30') c[i]=b[i]-'0'; if(b[i]<='\x5A'&&b[i]>='\x41') c[i]=b[i]-'7'; } for(i=0;i='\x30') f[i]=e[i]-'0'; if(e[i]<='\x5A'&&e[i]>='\x41') f[i]=e[i]-'7'; } max1=c[0]; for(i=1;i

C语言作业

菱形 #include int main() { int i,j; for(i=1;i<=4;i++) { for(j=1;j<=4-i;j++) printf(" "); for(j=1;j<=2*i-1;j++) printf("*"); printf("\n"); } for(i=1;i<=3;i++) { for(j=1;j<=i;j++) printf(" "); for(j=1;j<=7-2*i;j++) printf("*"); printf("\n"); } return 0; } 三角形 #include int main() { int i,j; for(i=1;i<=5;i++) { for(j=1;j<=24-i;j++) printf(" "); for(j=1;j<=2*i-1;j++) printf("*"); printf("\n"); } return 0; }

乘法口诀 #include int main() { int i,j; for(i=1;i<=9;i++) { for(j=1;j<=9;j++) if(j<=i) printf("%d*%d=%d ",j,i,i*j); printf("\n"); } return 0; } 统计大写字母 #include #include int main() {char c; int num[26]={0},i; while((c=getchar())!='#') if(isupper(c)) num[c-'A']+=1; for(i=0;i<26;i++) if(num[i]) printf("%c:%d\n",i+'A',num[i]); return 0; } 最小公倍数,最大公约数 #include int main() { int m,n,p,r,t; scanf("%d,%d",&n,&m); if(n

C语言课程设计大作业

郑州大学 课程报告 课程名称:C语言程序设计 专业班级:(15)班 学生姓名:谢* 学号: *** 任课教师:赵** 学期: 2012-2013-2 课程报告任务书

成绩评定教师:一. 需求分析

1,具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。 2,数据包括:人名、工作单位、电话号码和E-MAIL地址。 3,可对记录中的姓名和电话号码进行修改。 4,可增加和删除记录。 5,可显示所有的保存记录。 6,可按人名或电话号码进行查询。 分析 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。 根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。 二、概要设计 (1).程序的模块组成及各个函数的功能: 程序的模块组成: 主函数:main(); 输出数据函数:printf(); 读取数据函数:scanf(); 显示记录函数:Display(); 删除记录函数:shanchu(); 查找记录函数:chaxun(); 自定义清屏函数:system(“cls”); 自定义输入函数:input(); 字符输入函数:getchar(); 修改数据函数:xiugai(); 保存数据函数:baocun(); 排序数据函数:paixu(); 各函数的主要功能: 输出数据函数:随时输出数据; 读取数据函数:读取输入的数据信息;

显示菜单函数:显示可供选择的主菜单; 显示记录函数:显示通讯录所有输入的信息; 删除记录函数:显示要删除的通讯录所有输入的信息; 查找记录函数:显示要查询的通讯录所有输入的信息; 自定义清屏函数:清除前面运行留下的信息; 自定义输入函数:输入通讯录的成员;; 字符输入函数:从终端输入一个字符,遇回车键返回; 修改数据函数:修改通讯录的成员信息; 保存数据函数:保存通讯录的成员信息; 排序数据函数:排序通讯录的成员信息; (2)程序中的抽象数据类型的定义: 用户的状态结构 用户 { 编号: 姓名: 电话; 年龄; 邮箱: 地址; (3)总体流程图 根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。 } 三. 详细设计

C语言习题全集答案(至函数)

第一单元程序设计和C语言 一、选择题 1.C语言的基本构成单位是:。 A. 函数 B. 函数和过程 C. 超文本过程 D. 子程序 2.一个C语言程序总是从开始执行。 A. 主过程 B. 主函数 C. 子程序 D.主程序 3.C语言的程序一行写不下时,可以。 A. 用逗号换行 B. 用分号换行 C. 在任意一空格处换行 D. 用回车符换行 4.以下叙述不正确的是:。 A. 在C程序中,语句之间必须要用分号";"分隔 B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数 C. 在C程序中,无论是整数还是实数都能正确无误地表示 D. 在C程序中,%是只能用于整数运算的运算符 5.以下不正确的C语言标识符是。 A. ABC B. abc C. a_bc D. ab.c 6.下列字符串是标识符的是:。 A. _HJ B. 9_student C. long D. LINE 1 7.以下说法中正确的是:。 A. C语言程序总是从第一个定义的函数开始执行 B. 在C语言程序中,要调用的函数必须放在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 8.不合法的常量是:。 A. ‘\2’ B. "" C. ‘3’ D. ‘\483’ 9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是:。 int k,a,b; unsigned long w=5; double x=1.422; A. x%(-3) B. w+=-2 C. k=(a=2,b=3,a+b) D. a+=a=+(b=4)*(a=3) 10.在C语言中,字符型数据在内存中以形式存放。 A. 原码 B. BCD码 C. 反码 D. ASCII码

C语言练习作业和答案

习题一 1、C语言源程序最多可能由____ABCD____________部分组成? A) 预处理部分B)变量说明部分 C) 函数原型声明部分D)函数定义部分 2、一个完整的C语言源程序最少必须有___C____。 A)若干个主函数B)若干个函数 C)且只能有一个主函数D)一个函数 3、C语言以函数为源程序的基本单位最主要有利于__B_____。 A)程序设计结构化B)程序设计模块化 C)程序设计简单化D提高程序设计有效性 4、要使得C语言编写的程序能够在计算机上运行并得出正确结果,必须要先经过______________B_______________________。 A)编辑和链接B)编译和链接 C)修改和运行D运行并输入数据 5、一个C程序的执行是从______A______。 A)本程序的main函数开始,到main函数结束。 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 6、以下叙述正确的是__A______。 A)在C程序中,main函数必须位于程序的最前面 B)C程序的每行中只能写一条语句 C)C语言本身没有输入输出语句 D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误 7、以下叙述不正确的是___D_____。 A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面 8、C语言规定:在一个源程序中,main函数的位置是___A_____。 A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后 习题二 一、程序题 1、阅读程序写运行结果 (1)#include int main()

C语言函数练习题及答案.doc

【单选题】 在下列关于C函数定义的叙述中,正确的是? A、 函数可以嵌套定义,但不可以嵌套调用; B、 函数不可以嵌套定义,但可以嵌套调用; C、 函数不可以嵌套定义,也不可以嵌套调用; D、 函数可以嵌套定义,也可以嵌套调用; 我的答案:B得分:2.5分 2 【单选题】 下面函数调用语句含有实参的个数为? n c((expl z exp2)z(exp3z exp4A exp5)); A、

B、

D、 5 我的答案:B得分:2.5分 3 【单选题】 c语言中函数返回值的类型是由以下哪个选项决定的? A、 函数定义时指定的类型; B、 return语句中的表达式类型; C、 调用该两数时的实参的数据类型; D、 形参的数据类型; 我的答案:A得分:2.5分

4 【单选题】

以下关于函数叙述屮,错误的是? A、 两数未被调用时,系统将不为形参分配内存单元; B、 实参与形参的个数必须相等,TL实参与形参的类型必须对应一致; C、 当形参是变量时,实参可以是常量、变量或表达式; D、 如两数调用时,实参与形参都为变:S,则这两个变量不可能共亨同一内存空间; 我的答案:B得分:2.5分 5 【单选题】 若函数调用时参数为基本数据类型的变量,以下叙述正确的是? A、 实参与菇对应的形参共享内存存储单元; B、 只有当实参与菇对应的形参同名时才共享内存存储单元;

C、 实参与对应的形参分别占用不同的内存存储单元; 实参将数据传递给形参后,立即释放原先占用的内存存储单元; 我的答案:C得分:2.5分 6 【单选题】 函数调用时,实参和形参都是简单变量,它们之间数据传递的过程描述正确的是? A、 实参将地址传递给形参,并释放原先占用的存储单元; B、 实参将地址传递给形参,调用结束时形参再将此地址回传给实参; C、 实参将值传递给形参,调用结束时形参再将其值回传给实参; D、 实参将值传递给形参,调用结束时形参并不将其值回传给实参; 我的答案:D得分:2.5分 7 【单选题】

C语言大作业学生信息管理系统

《程序设计综合课程设计》报告 学生姓名: ______ ______ ______ ______________________ 学生班级: ______________________ ____________ ____________ 学生学号: ____________ 指导教师: ______ 2014年6 月 22 日

目录 前言 (2) 第1章Visual C++6.0简介及其优点 (3) 第2章课程设计的目的和要求 (4) (4) 2.2课程设计的要求 (5) 第3章课程设计任务内容 (6) 3.1 需求分析 (6) 3.2可行性分析 (6) 第4章软件使用说明 (7) 第5章总结 .................................................. 错误!未指定书签。附录源程序 学生信息管理系统 前言 学生信息档案的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项 数据资源,是一个教育单位不可缺少一部分。特别是近几年来,国家政策的调整,我国高等 院校大规模的扩招,给高等院校的教学管理、学生管理、后勤管理等方面都带来不少的冲击。 其包含的数据量大,涉及的人员面广,而且需要及时更新,故较为复杂,难以单纯地依靠人 工管理,而且传统的人工管理方式既不易于规范化,管理效率也不高,目前我国各类高等院 校中还有相当一部分学生档案管理还停留在纸介质的基础上,尤其是中、小学对学生档案的 管理更是落后,这样的管理机制已经不能适应时代发展的要求,其管理方法将浪费许多人力 和物力。随着科学技术的不断提高,计算机科学与技术日渐成熟,计算机应用的普及已进入 人类社会生活的各个领域,并发挥着越来越重要的作用。这种传统的手工管理模式必然被以 计算机为物质基础的信息管理方法所取代。 作为计算机应用的一部分,使用计算机对学生档案进行管理,有着手工管理所无法比拟 的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。 这些优点能够极大地提高学生档案管理的效率,也是学校向科学化、正规化管理发展的必要 条件,更是各个高等院校与世界接轨的重要条件。

相关文档