知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技

指针,数组,图形打印,水仙花数

发表时间:2022-03-25来源:网络

C语言基础编程题9道——指针,数组,图形打印

1.写一个函数打印arr数组的内容,不使用数组下标,使用指针。
arr是一个整形一维数组。

#include void Print(int *p,int len){ int i = 0; while (i != len){ printf("%d ",*(p+i)); i++; } printf("\n"); } int main(){ int num[] = {10,20,30,0,8,2,66,88,99}; int len = sizeof(num) / sizeof(num[0]); Print(num,len); return 0; }

2.写一个函数,可以逆序一个字符串的内容。

#include #include void IWord(char *str,int len){ int start = 0, end = len - 1; while (start char arr[10000]; scanf("%s",arr); int len = strlen(arr); IWord(arr,len); printf("%s\n",arr); return 0; }

3.求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字。

#include int Sn(int *a){ int sum = 0; for (int i = 0; i int a[] = {2,22,222,2222,22222}; printf("%d\n",Sn(a)); return 0; }

4.求出0~100000之间的所有“水仙花数”并输出。
“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=13+53+3^3,则153是一个“水仙花数”。

#include #include void Water(){ for (int i = 0; i n = n / 10; num++; } n = i; while (n){ sum = sum + (int)pow(n % 10, num); n = n / 10; } if (sum==i){ printf("%d ",i); } } printf("\n"); } int main(){ Water(); return 0; }

5.打印菱形
用C语言在屏幕上输出以下图案:

#include void PrintLX1(int n){//正三角 for (int i = 1; i printf(" "); } for (int j = 1; j //倒三角 for (int i = 1; i printf(" "); } for (int j = 1; j PrintLX1(7); PrintLX2(7); return 0; }

6.喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水(编程实现)。
(个人思路:两个空瓶子每换一瓶就相当于多了1块钱,只不过这一块钱就只能换水罢了)

#include int Drink(int Money){ int num = 0; for (int i = Money; i >=0;--i){ if (num%2==0){ i++;//每换一瓶,相当于多一块钱 } num++; } return num; } int main(){ printf("%d\n",Drink(20)); return 0; }

7.模拟实现库函数strlen

#include int Mystrlen(char *p){ if (*p=='\0'){ return 0; } else{ return 1 + Mystrlen(p+1); } } int main(){ char str[50000]; scanf("%s",str); printf("%d\n", Mystrlen(str)); return 0; }

8.模拟实现库函数strcpy

#include void Mystrcpy(char *str1,char *str2){ for (int i = 0;;++i){ *(str1 + i) = *(str2 + i); if (*(str2 + i) == '\0'){ break; } } } int main(){ char str1[50000]; char str2[50000]; scanf("%s", str2); Mystrcpy(str1,str2); printf("复制之后的str1为%s\n",str1); return 0; }

9.题目:
输入一个整数数组,实现一个函数,
来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,
所有偶数位于数组的后半部分。

#include void Ec(int *num,int len){ int nu[10000] = {0}; int i, j=0; for (i = 0; i nu[j] = *(num+i); j++; } } for (i = 0; i nu[j] = *(num + i); j++; } } for (i = 0; i int num[] = { 1, 20, 3, 80, 5, 6, 7, 9, 0 }; int len = sizeof(num) / sizeof(int); Ec(num,len); for (int i = 0; i
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜