C语言题
来源:百度文库 编辑:神马文学网 时间:2024/04/30 01:50:32
一、分析程序,写出结果
1.int a[]={1,2,3,4,5,6,7,8,9};
printf("%d\n",*(a+4));
2.int a[][3]={{1,2,3},{4,5,6},{7,8,9}},*p;
p=&a[0][0];
printf("%d\n",p[5]);
3.int a[5]={1,2,3,4,5},*p;
p=&a[0];
则*(p+1)=____,*(a+2)=______.
4.#include "stdio.h"
main()
{
int a[]={1,2,3,4,5,6,7,8,9,10,11,12};
int *p=a+5,*q=NULL;
*q=*(p+5);
printf("%d %d\n",*p,*q);
}
5.int a=25,*p;
p=&a;
printf("%d\n",++*p);
6.void fun(int *a,int b[])
{
b[0]=*a+6;
}
main()
{
int a=0,b[5];
b[0]=3;
fun(&a,b);
printf("%d\n",b[0]);
}
二、编程
1.从键盘读入一串字符,遇到三个连续的'#'结束,统计其中英文字母的个数并输出。
#include "stdio.h"
main()
{
char *p;
int letter=0;
gets(p);
while(*p)
{
if(*p=='#'&&*(p+1)=='#'&&*(p+2)=='#') break;
else if(*p>='A'&&*p<='Z'||*p>='a'&&*p<='z') letter++;
p++;
}
printf("letter=%d\n",letter);
}
2.输入一个字符串,判断这个字符串是否为“回文”。
#include "stdio.h"
#include "string.h"
main()
{
char *str;
int a,b,flag=0;
printf("please input string:");
gets(str);
a=strlen(str);
for(b=0;b<=a/2;b++)
if(*(str+b)==*(str+a-b-1)) flag=1;
else break;
if(flag) printf("yes!\n");
else printf("no!\n");
}
3.写一个函数,求字符串长度。在在主函数中输入字符串并输出长度。
#include "stdio.h"
int length(char *p)
{
int n=0;
while(*p++) n++;
return n;
}
main()
{
char *p;
gets(p);
printf("length=%d\n",length(p));
}
4.有一字符串包含N个字符,写一个函数, 将字符串中从第M个字符开始的全部字符复制成为另一个字符 串。
#include "stdio.h"
void scopy(char *psn,char *psm,int m)/*自定义函数*/
{
while(*(psn+m)) /*第m位置开始*/
*psm++=*(m+psn++);/*复制字符*/
*psm='\0'; /*加结束标志*/
}
main()
{
char sn[100]="abcdefghijklmnopqrstuvwxyz",sm[100];
int m,n;
n=strlen(sn); /*求sn实际长度*/
printf("Please input m:");
scanf("%d",&m); /*输入位置*/
if(m>n) printf("Position error!\n");
else
{
scopy(sn,sm,m); /*调用函数,进行复制*/
printf("\nThe new string is %s \n",sm);/*结果输出*/
}
}
1.int a[]={1,2,3,4,5,6,7,8,9};
printf("%d\n",*(a+4));
2.int a[][3]={{1,2,3},{4,5,6},{7,8,9}},*p;
p=&a[0][0];
printf("%d\n",p[5]);
3.int a[5]={1,2,3,4,5},*p;
p=&a[0];
则*(p+1)=____,*(a+2)=______.
4.#include "stdio.h"
main()
{
int a[]={1,2,3,4,5,6,7,8,9,10,11,12};
int *p=a+5,*q=NULL;
*q=*(p+5);
printf("%d %d\n",*p,*q);
}
5.int a=25,*p;
p=&a;
printf("%d\n",++*p);
6.void fun(int *a,int b[])
{
b[0]=*a+6;
}
main()
{
int a=0,b[5];
b[0]=3;
fun(&a,b);
printf("%d\n",b[0]);
}
二、编程
1.从键盘读入一串字符,遇到三个连续的'#'结束,统计其中英文字母的个数并输出。
#include "stdio.h"
main()
{
char *p;
int letter=0;
gets(p);
while(*p)
{
if(*p=='#'&&*(p+1)=='#'&&*(p+2)=='#') break;
else if(*p>='A'&&*p<='Z'||*p>='a'&&*p<='z') letter++;
p++;
}
printf("letter=%d\n",letter);
}
2.输入一个字符串,判断这个字符串是否为“回文”。
#include "stdio.h"
#include "string.h"
main()
{
char *str;
int a,b,flag=0;
printf("please input string:");
gets(str);
a=strlen(str);
for(b=0;b<=a/2;b++)
if(*(str+b)==*(str+a-b-1)) flag=1;
else break;
if(flag) printf("yes!\n");
else printf("no!\n");
}
3.写一个函数,求字符串长度。在在主函数中输入字符串并输出长度。
#include "stdio.h"
int length(char *p)
{
int n=0;
while(*p++) n++;
return n;
}
main()
{
char *p;
gets(p);
printf("length=%d\n",length(p));
}
4.有一字符串包含N个字符,写一个函数, 将字符串中从第M个字符开始的全部字符复制成为另一个字符 串。
#include "stdio.h"
void scopy(char *psn,char *psm,int m)/*自定义函数*/
{
while(*(psn+m)) /*第m位置开始*/
*psm++=*(m+psn++);/*复制字符*/
*psm='\0'; /*加结束标志*/
}
main()
{
char sn[100]="abcdefghijklmnopqrstuvwxyz",sm[100];
int m,n;
n=strlen(sn); /*求sn实际长度*/
printf("Please input m:");
scanf("%d",&m); /*输入位置*/
if(m>n) printf("Position error!\n");
else
{
scopy(sn,sm,m); /*调用函数,进行复制*/
printf("\nThe new string is %s \n",sm);/*结果输出*/
}
}