1、编写函数,求一个字符串的长度。在main()函数中输入字符串,并输出其长度。 #include
int i=0,num=0; while(ch[i]!='\\0') {
num++; i++; }
return num; }
void main() {
char ch[100];
printf(\ gets(ch);
printf(\}
2、编写一个函数,求两个整数的最大值和平均值。在主函数中,从键盘读入两个整数并输出他们的最大值及平均值。函数说明如下:void process (int a, int b, int *max, int *ave); 其中a,b为输入整数,max、ave用于结果回传。编写主函数及process函数。 #include
void process (int a, int b, int *max, int *ave) {
int c;
if(a>b) max=&a; else max=&b; c=(a+b)/2; ave=&c;
printf(\}
void main() {
int a,b,*c,*d;
printf(\ scanf(\ process(a,b,*c,*d); }
3、编程求200~300之间能同时被3和4整除的所有整数之和。 #include
int a=200,b=0; while(a<=300) {
if(a%3==0&&a%4==0) b=b+a; a++; }
printf(\}
4、编写程序,实现复制字符串的自定义版:char *mystrcpy(char *d,char *s);//该函数返回d的值,即字符串的首地址。 #include
int * mystrcpy(char * d ,char * s,int m)
C语言上机考试题及及答案
{
while((* d=* (s+m))!='\\0') {
s++; d++; }
return (d); }
void main() {
char s1[100],s2[100],* ps1, * ps2; int i;
ps1=&s1[0];
printf(\ gets(s2);
printf(\ scanf(\ ps2=s2;
mystrcpy(ps1,ps2,i); puts(s1); }
5、编写一个函数,实现两个整数的交换。在主函数中,从键盘读入两个整数并输出他们交换后的结果。
#include
void swap(int *a,int *b) {
int t; t=*a; *a=*b; *b=t; }
void main() {
int s,d,*q1,*q2;
printf(\ scanf(\ q1=&s; q2=&d; swap(q1,q2);
printf(\}
6、编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串及输出上述结果。 #include
int i;
int word=0,num=0,blank=0,other=0; for(i=0;str[i]!='\\0';i++) {
if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')) word++; else if(str[i]>='0'&&str[i]<='9') num++; else if(str[i]==' ') blank++; else other++; }
printf(\ printf(\
printf(\
printf(\}
void main() {
char str[100];
printf(\ gets(str); statis(str); }
7、编写程序求100~200之间所有素数之和并输出。 #include
int i,j,k,cnt=0; int a[50];
for(i=100;i<200;i++) {
k=1;
for(j=2;j
k=0; break; } if(k) {
a[cnt]=i; cnt++; } }
int sum=0;
for(i=0;i 8、编一函数,求字符串的长度,函数原型为: int my_strlen(char *s); #include int num=0; while(*s!='\\0') { num++; s++; } return num; } void main() { char str[100],*p; p=&str[0]; printf(\ gets(str); printf(\} 9、编写一个函数,求长度为n的数组中的最大值,并由形参返回。函数说明如下:void max(int *a, int n, int * max) 其中a为数组的首地址,n为数组长度,max用于结果回传。 #include void max(int *a, int n, int * max); void main() { int num[5],*p,*q,i; p=num; printf(\ for(i=0;i<5;i++) scanf(\ max(p,5,q); } void max(int *a,int n,int *max) { int i,x=0; for(i=0;i if(x<*a) { x=*a; max=&x; } a++; } printf(\} (不完全对) 10、编写程序输入一个字符串,根据空格,统计其中单词的个数。 #include char str[100],prec,nowc; int i, num; printf(\ gets(str); prec=' ';num=0;i=0; while(str[i]!='\\0') { nowc=str[i]; if(nowc!=' '&&prec==' ') num++; prec=nowc; i++; } printf(\} 11、编写程序完成如下图形的输出(要求用循环完成): #include int num=5,i,j; for(i=1;i<6;i++) { for(j=1;j<=num;j++) printf(\ num--; printf(\ } } 12、编写一函数,求字符串的长度,函数原型为: int my_strlen(char *s); #include int num=0; while(*s!='\\0') { num++; s++; } return num; } void main() { char str[100],*p; p=&str[0]; printf(\ gets(str); printf(\} 13、在主函数中,完成变量说明int a, b, x, y; 并从键盘读入a, b的值之后,以process(a, b, &x, &y) ;形式调用process函数后,即可得到x是a,b的最大值,y是a,b之和。编写主函数及process函数。 #include void process(int x,int y,int *p,int *q); void main() { int a,b,x,y; printf(\ scanf(\ process(a,b,&x,&y); printf(\} void process(int x,int y,int *p,int *q) { *p=x>y?x:y; *q=x+y; } 14、编写程序输入一个字符串并将其内容颠倒存放后输出 #define N 80 #include char str[N]; int i,j,t,p,n; printf(\ gets(str); i=0; while(str[i]!='\\0') i++; p=i/2-1; for(n=0;n<=p;n++) { j=i-n-1; t=str[n]; str[n]=str[j];