C语言上机练习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
;s[1].b;
printf("%d\n",t);
}
1.摊论个卖西瓜,以西瓜的重量论价。10斤以上的每斤0.3元,8斤以上的每斤0.4元,6斤以上的每斤0.5元,4斤以上的每斤0.7元,4斤以下的每斤0.8元,从键盘输入西瓜的重量和顾客所付钱数,输出应付款和应找钱数。
2.编写程序完成任意两个数的+,-,*,/运算,要求从键盘输入四个运算符之一和任意两个数,输出运算结果。
{char c[N];
int i=0;
for(;i<N;c[i]=getchar(),i++);
for(i=0;i<N;i++) putchar(c[i]);printf("\n");}
A.a B.a C.ab D.abcdef
b b c
c c d
d d
e
f
13.给出下列程序的运行结果:
# include "string.h"
#include <stdio.h>
voidmain()
{
int v1=0,v2=0; char ch;
for(;(ch=getchar())!=‘#’;)
switch(ch)
{
case ‘a’:
case ‘h’:
default: v1++;
case ‘o’: v2++;
}
printf(“%d,%d\n”,v1,v2);
6.从键盘输入若干整数(数据个数应少于50),其值在0至4的范围内,用-1作为输入结束的标志。统计每个整数的个数。试编程。
7.设计一个程序,将上学期本队学员高数课程的考试成绩排序,并给出每一个学员的名次。(如果有并列第一,则取消第二名,以此类推)
8.编程求具有4行4列数据的二维数组每一列元素之和并将其放入该列的第五行上。输出第五行元素。
#include "stdio.h"
void main()
{ char str[81],str1[81];
int k=1,i=1,j;
int flag=0;
gets(str);
str1[0]=str[0];
while(str[i]!='\0')
{ for(j=0;j<k;j++)
if(str[i]==str1[j])
}
sub3(int a[])
{
int i;
for(i=0;i<MAX;i++) printf(“%d”,a[i]);
printf(“\n”);
}
voidmain()
{
printf(“\n”); sub1(); sub3(a); sub2(); sub3(a);
}
16.以下程序的正确运行结果是。
#include <stdio.h>
#defineMAX100
voidmain()
{intf[MAX],i,j,k=2,m=5;
for(i=0;i<=m;i++)
f[i]=1;
f[k-1]=2;
for(i=k;i<=m;i++)
for(j=i-k;j<=i-1;j++)
f[i]+=f[j];
printf("%d%5d%5d\n",k,m,f[m]);
{t=*(pointer+3*i+j);
*(pointer+3*i+j)=*(pointer+3*j+i);
*(pointer+3*j+i)=t;
}
}
21.以下程序的正确运行结果是。
#include <stdio.h>
#include <string.h>
void main()
{ char *p1,str1[20]="xyz",str2[20];
func(int a,int b)
{
static int m=0,i=2;
i+=m+1;
m=i+a+b;
return(m);}
voidmain()
{
int k=4,m=1,p;
p=func(k,m); printf(“%d,”,p);
p=func(k,m); printf(“%d\n”,p);
}
17.阅读程序,说出程序的运行结果()。
}
15.以下程序的正确运行结果是。
#include<stdio.h>
#define MAX 10
int a[MAX],i;
sub2()
{
int a[MAX],i,max;
max=5;
for(i=0;i<max;i++) a[i]=i;
}
sub1()
{
for(i=0;i<MAX;i++) a[i]=i+i;
for(j=0;j<4;j++)
【1】
}
for(k=0;k<4;k++)
printf(“\nY[%d]=%-6.2f”,k+1,【2】);
}
12.运行以下程序时,如果从键盘上输入:
ab<回车>
c<回车>
def<回车>
则输出结果为()。
#include "stdio.h"
#define N 6
voidmain()
1.阅读以下程序,说出其功能和运算结果。
#include <stdio.h>
intmain()
{
int n ;
int factorial(int n) ;
scanf("%d",&n);
printf("%d\n",factorial(n));
return 0 ;
}
int factorial(int n)
}
7.下列程序的输出为。
#include<stdio.h>
void main()
{int i,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);
}
8.下面程序的运行结果是。
#include <stdio.h>
printf("\n");
}
p=a;
move(p);
for(i=0;i<3;i++)
printf("%3d%3d%3d\n",a[i][0],a[i][1],a[i][2]);
}
void move(int *pointer)
{int i,j,t;
for(i=0;i<2;i++)
for(j=i+1;j<3;j++)
{ y=2*x-1;
printf("x=%d,y=2*x-1=%d\n",x,y);
}
else
{ y=3*x-11;
printf("x=%d,y=3*x-11=%d\n",x,y);
}
}
4.当输入19,2,21时下列程序运行的结果是( )。
#include<stdio.h>
main()
{int a,b,c,max;
voidmain()
{
float a[4][4]={{1,-0.2,0,0},{-0.8,1,-0.2,-0.2},
{0,-0.8,1,-0.2},{0,-0.8,-0.8,1}};
float x[4]={1,1,1,1},y[4];
int i,j,k;
for(i=0;i<4;i++)
{
y[i]=0;
void main()
{ int a[]={2,3,4,5};
int s, i, *p;
s=1; p=a;
for(i=0;i<=3;i++) s+=*p++;
printf("s=%d\n",s);
}
20.以下程序的正确运行结果是。
#include <stdio.h>
void main()
{
void move(int *);
return 0 ;
}
3.若输入4,程序运行结果为【1】,若输入-4,运行结果为【2】,若输入10,运行结果为【3】。
#include<stdio.h>
main()
{int x,y;
scanf("%d",&x);
if(x<1)
{ y=x;
printf("x=%d,y=x=%d\n",x,y);
}
else if(x<10)
{
int i,fact=1 ;
for(i=1;i<=n;i++)
fact=fact*i ;
return fact ;
}
若输入5↙
2.改正下列程序中的错误,在屏幕上显示“Welcome to You!”。
#include <stdio.h>
intmian()
{
printf("Welcome to You!\n")
{int c;
c=a%2;
return c;}
voidmain()
{int a,e[10],c,i=0;
printf(“输入一整数\n”);
scanf(“%d”,&a);
while(a!=0)
{c=sub(a);
a=a/2;
e[i]=c;
i++;}
for(;i>0;i--) printf(“%d”,e[i-1]);
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<stdio.h>
}
10.下面程序可求出矩阵a的两条对角线上的元素之和。请填空。
#include<stdio.h>
voidmain()
{
int a[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];
p1="abcd";p1++;
strcat(str1+1,p1+1);
strcpy(str2,str1);
printf("%s",str2);
}
22.下列程序的输出结果是
#include<stdio.h>
struct abc
{ int a, b, c; };
main()
{ struct abc s[2]={{1,2,3},{4,5,6}};
printf("please scan three number a,b,c:\n");
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(max<b)max=b;
if(max<c)max=c;
printf("max is:%d",max);
}
5.运行以下程序时,从键盘键入China#<CR>(<CR>代表回车),则下面程序的运行结果是。
#include <stdio.h>
#defineADD(x)x+x
voidmain()
{
int m=1,n=2,k=3;
int sum=ADD(m+n)*k;
printf("sum=%d",sum);
}
18.以下程序的正确运行结果是。
int fun(int x,int y ,int *cp,int *dp)
{*cp=x+y;
*dp=x-y;
}
#include <stdio.h>
void main()
{int a,b,c,d;
a=4;b=3;
fun(a,b,&c,&d);
printf("%d %d %d %d\n",a,b,c,d);
}
19.以下程序的正确运行结果是。
#include <stdio.h>
}
6.下面程序的运行结果是。
#include <stdio.h>
voidmain()
{int i,j,k=19;
while(i=k-1)
{k-=3;
if(k%5==0) { i++; continue; }
else if(k<5) break;
i++;
}
printf(“i=%d,k=%d\n”,i,k);
int a[3][3]={1,2,3,4,5,6,7,8,9},(*p)[3],*p1=*a,i,j;
for(;p1<*a+9;p1++)printf("%3d",*p1);
printf("\n");
p1=*a;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)printf("%3d",*(p1+i*3+j));
3.给定一个日期,输出这个日期是该年的第几天(输入的数据格式为YYYYMMDD,确保输入的数据有效)。
4.找出1~99之间满足以下条件的数:该数的平方对于10的余数等于该数本身,或者该数的平方对于100的余数等于该数本身。
5.编写一个程序,输出菱形图案,第一行为一个字母A,第二行为三个字母B,依此类推,第n行为2n-1个相应的字母,以后每行字母个数递减。n由键盘输入。
void main()
{
int n[3],i,j,k;
for(i=0;i<3;i++) n[i]=0;
k=2;
for(i=0;i<k;i++)
for(j=0;j<k;j++)
n[j]=n[i]+1;
相关文档
最新文档