C语言上机练习题
ints,i,*p;
s=1;p=a;
for(i=0;i<=3;i++)s+=*p++;
printf("s=%d\n",s);
}
20.以下程序的正确运行结果是。
#include<>
voidmain()
{
voidmove(int*);
inta[3][3]={1,2,3,4,5,6,7,8,9},(*p)[3],*p1=*a,i,j;
for(i=0;i<3;i++)
for(【1】;【2】;j--)
if((i+j)==2)sum2=sum2+a[i][j];
printf(“sum1=%d,sum2=%d\n”,sum1,sum2);
}
11.已知以下矩阵:
= ×
下面程序的功能是求出Y1,Y2,Y3,Y4的值。请填空。
#include<>
case‘a’:
case‘h’:
default:v1++;
case‘o’:v2++;
}
printf(“%d,%d\n”,v1,v2);
}
6.下面程序的运行结果是。
#include<>
voidmain()
{inti,j,k=19;
while(i=k-1)
{k-=3;
if(k%5==0){i++;continue;}
{}
floatf1(intx,intn)
{}
#include<>
voidmain()
printf("%3d%3d%3d\n",a[i][0],a[i][1],a[i][2]);
}
voidmove(int*pointer)
{inti,j,t;
for(i=0;i<2;i++)
for(j=i+1;j<3;j++)
{t=*(pointer+3*i+j);
*(pointer+3*i+j)=*(pointer+3*j+i);
2.编写程序完成任意两个数的+,-,*,/运算,要求从键盘输入四个运算符之一和任意两个数,输出运算结果。
3.给定一个日期,输出这个日期是该年的第几天(输入的数据格式为YYYYMMDD,确保输入的数据有效)。
4.找出1~99之间满足以下条件的数:该数的平方对于10的余数等于该数本身,或者该数的平方对于100的余数等于该数本身。
{c=sub(a);
a=a/2;
e[i]=c;
i++;}
for(;i>0;i--)printf(“%d”,e[i-1]);
}
15.以下程序的正确运行结果是。
#include<>
#defineMAX10
inta[MAX],i;
sub2()
{
inta[MAX],i,max;
max=5;
for(i=0;i<max;i++)a[i]=i;
11.通过键盘输入三行英文文字,编写程序将输入的三行文字输出,要求输出结果中不允许包含大写字母(输出时如遇到大写字母则将其转换为小写)。
12.以下程序的功能是应用下面的近似公式计算e的n次方。函数f1用来计算每项分子的值,函数f2用来计算每项分母的值。请编写f1和f2函数。
(前20项的和)
floatf2(intn)
printf("%s",str2);
}
22.下列程序的输出结果是
#include<>
structabc
{inta,b,c;};
main()
{structabcs[2]={{1,2,3},{4,5,6}};
intt;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
1.摊论个卖西瓜,以西瓜的重量论价。10斤以上的每斤元,8斤以上的每斤元,6斤以上的每斤元,4斤以上的每斤元,4斤以下的每斤元,从键盘输入西瓜的重量和顾客所付钱数,输出应付款和应找钱数。
}
17.阅读程序,说出程序的运行结果()。
#include<>
#defineADD(x)x+x
voidmain()
{
intm=1,n=2,k=3;
intsum=ADD(m+n)*k;
printf("sum=%d",sum);
}
18.以下程序的正确运行结果是。
intfun(intx,inty,int*cp,int*dp)
}
}
4.当输入19,2,21时下列程序运行的结果是( )。
#include<>
main()
{inta,b,c,max;
printf("pleasescanthreenumbera,b,c:\n");
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(max<b)max=b;
if(max<c)max=c;
for(i=1;i<=n;i++)
fact=fact*i;
returnfact;
}
若输入5↙
2.改正下列程序中的错误,在屏幕上显示“WelcometoYou!”。
#include<>
intmiaometoYou!\n")
return0;
}
3.若输入4,程序运行结果为【1】,若输入-4,运行结果为【2】,若输入10,运行结果为【3】。
}
16.以下程序的正确运行结果是。
#include<>
func(inta,intb)
{
staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);}
voidmain()
{
intk=4,m=1,p;
p=func(k,m);printf(“%d,”,p);
p=func(k,m);printf(“%d\n”,p);
}
10.下面程序可求出矩阵a的两条对角线上的元素之和。请填空。
#include<>
voidmain()
{
inta[3][3]={1,3,6,7,9,11,14,15,17},sum1=0,sum2=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j)sum1=sum1+a[i][j];
for(i=0;i<N;i++)putchar(c[i]);printf("\n");}
A.aB.aC.abD.abcdef
bbc
ccd
dd
e
f
13.给出下列程序的运行结果:
#include""
#include""
voidmain()
{charstr[81],str1[81];
intk=1,i=1,j;
elseif(k<5)break;
i++;
}
printf(“i=%d,k=%d\n”,i,k);
}
7.下列程序的输出为。
#include<>
voidmain()
{inti,j,k=0,m=0;
for(i=0;i<2;i++)
{for(j=0;j<3;j++)k++;k-=j;}
m=i+j;
printf("k=%d,m=%d\n",k,m);
}
sub1()
{
for(i=0;i<MAX;i++)a[i]=i+i;
}
sub3(inta[])
{
inti;
for(i=0;i<MAX;i++)printf(“%d”,a[i]);
printf(“\n”);
}
voidmain()
{
printf(“\n”);sub1();sub3(a);sub2();sub3(a);
8.编程求具有4行4列数据的二维数组每一列元素之和并将其放入该列的第五行上。输出第五行元素。
9.找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可以没有鞍点。(用常规算法做的时候,要求数据不能相同)
10.从键盘输入两个字符串a和b,要求不用库函数strcat把串b的前五个字符连接到串a中;如果b的长度小于5,则把b中的所有元素都连接到a中。试编程。
printf(“\nY[%d]=%-6.2f”,k+1,【2】);
}
12.运行以下程序时,如果从键盘上输入:
ab<回车>
c<回车>
def<回车>
则输出结果为()。
#include""
#defineN6
voidmain()
{charc[N];
inti=0;
for(;i<N;c[i]=getchar(),i++);
for(;p1<*a+9;p1++)printf("%3d",*p1);