题目:将一个数组逆序输出。
1.题目分析:用第一个与最后一个交换。
2.题目源代码如下:
#include "stdio.h"
#define N 6
int main()
{
int a[N]={0,1,2,3,4,5};
int i,t;
printf("原始数组是:\n");
for(i=0;i<N;i++)
{
printf("%d ",a[i]);
}
for(i=0;i<N/2;i++)
{
t=a[i];
a[i]=a[N-1-i];
a[N-1-i]=t;
}
printf("\n排序后的数组:\n");
for(i=0;i<N;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
题目:学习使用按位与 & 。
1.题目分析:0&0=0; 0&1=0; 1&0=0; 1&1=1 。
2.题目源代码如下:
#include "stdio.h"
int main()
{
int a,b;
a=077;
b=a&3;
printf("(a & b)为%d \n",b);
b=b&7;
printf("(a & b)为%d \n",b);
return 0;
}
题目:学习使用按位或 | 。
1.题目分析:0|0=0; 0|1=1; 1|0=1; 1|1=1 。
2.题目源代码如下:
#include "stdio.h"
int main()
{
int a,b;
a=077;
b=a|3;
printf("b的值为:%d \n",b);
b|=7; // b=b|7;
printf("b的值为:%d \n",b);
return 0;
}
题目:学习使用按位异或 ^ 。
1.题目分析:0^0=0; 0^1=1; 1^0=1; 1^1=0 。
2.题目源代码如下:
#include "stdio.h"
int main()
{
int a,b;
a=077;
b=a^3;
printf("b的值为:%d \n",b);
b^=7;
printf("b的值为:%d \n",b);
return 0;
}
题目:学习使用按位取反 ~ 。
1.题目分析:~0=1; ~1=0。
2.题目源代码如下:
#include "stdio.h"
int main()
{
int a,b;
a=234;
b=~a;
printf("a的按位取反值为(十进制):%d \n",b);
a=~a;
printf("a的按位取反值为(十六进制):%x \n",a);
return 0;
}
题目:打印出杨辉三角形(要求打印出6行)。
1.题目分析:
2.题目源代码如下:
#include "stdio.h"
int main()
{
int i,j;
int a[6][6];
printf("\n");
for(i=0;i<6;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<10;i++)
{
for(j=1;j<i;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(i=0;i<6;i++)
{
for(j=0;j<=i;j++)
{
printf("%5d",a[i][j]);
}
printf("\n");
}
return 0;
}
题目:输入3个数a,b,c,按大小顺序输出。
1.题目分析:利用指针方法。
#2.题目源代码如下:
#include "stdio.h"
void swap(int *,int *);
int main()
{
int a,b,c;
int *p1,*p2,*p3;
printf("请输入a,b,c: \n");
scanf("%d %d %d",&a,&b,&c);
p1=&a;
p2=&b;
p3=&c;
if(a>b)
swap(p1,p2);
if(a>c)
swap(p1,p3);
if(b>c)
swap(p2,p3);
printf("%d %d %d \n",a,b,c);
return 0;
}
void swap(int *s1,int *s2)
{
int t;
t=*s1;
*s1=*s2;
*s2=t;
}
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
1.题目分析:
2.题目源代码如下:
#include "stdio.h"
int main()
{
int num[50],n,*p,j,loop,i,m,k;
printf("请输入这一圈人的数量: \n");
scanf("%d",&n);
p=num;
for(j=0;j<n;j++)
{
*(p+j)=j+1;
}
i=0; //i用于计数,即让指针后移
m=0; //m记录退出圈子的人数
k=0; //k报数1,2,3
while(m<n-1)
{
if(*(p+i) != 0)
{
k++;
}
if(k==3)
{
k=0; //报数清零,即下一个人从1开始报数
*(p+i)=0; //将报数为3的人编号重置为0
m++; //退出人数加1
}
i++; //指针后移
if(i==n)
{
i=0;
}
}
printf("现在剩下的人是: ");
for(loop=0;loop<n;loop++)
{
if(num[loop] != 0)
{
printf("%2d号\n",num[loop]);
}
}
}
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
1.题目分析:
2.题目源代码如下:
#include "stdio.h"
#include "stdlib.h"
int length(char *); //声明被调用的函数
int main()
{
int len;
char str[20];
printf("请输入字符串: \n");
scanf("%s",str);
len=length(str);
printf("字符串有%d个字符。",len);
}
int length(char *s) //求字符串的长度
{
int i=0;
while(*s != '\0')
{
i++;
s++;
}
return i;
}
题目:编写input()和output()函数输入,输出3个学生的数据记录。
1.题目分析:
2.题目源代码如下:
#include "stdio.h"
#include "stdlib.h"
typedef struct{
char name[20];
char sex[3];
int age;
}Stu;
void input(Stu *stu);
void output(Stu *stu);
int main()
{
Stu stu[3];
printf("请输入3个学生的信息:姓名 性别 年龄: \n");
input(stu);
printf("3个学生的信息如下:\n姓名 性别 年龄 \n");
output(stu);
system("pause");
return 0;
}
void input(Stu *stu)
{
int i;
for(i=0;i<3;i++)
{
scanf("%s%s%d",stu[i].name,stu[i].sex,&(stu[i].age));
};
}
void output(Stu *stu)
{
int i;
for(i=0;i<3;i++)
{
printf("%s %s %d \n",stu[i].name,stu[i].sex,stu[i].age);
}
}