您的位置:首页 > 游戏 > 手游 > ui设计师找工作_济南建站培训_外贸营销系统_网站建设平台官网

ui设计师找工作_济南建站培训_外贸营销系统_网站建设平台官网

2024/12/15 6:14:56 来源:https://blog.csdn.net/2401_87995839/article/details/143712062  浏览:    关键词:ui设计师找工作_济南建站培训_外贸营销系统_网站建设平台官网
ui设计师找工作_济南建站培训_外贸营销系统_网站建设平台官网

Hello大家好,我们又见面啦!

给生活添点passion,开始今天的编程之路!

今天我们来练习十道基础小题~

1、从键盘任意输入一个字符串,计算其实际字符个数并打印输出,即不使用字符串处理函数strlen()编程实现strlen()的功能。
**输入格式要求:"%s" 提示信息:"Please enter a string:"
**输出格式要求:"The length of the string is: %u\n"
程序的运行示例如下:
Please enter a string:Hello China
The length of the string is: 11

#include  <stdio.h>int  MyStrlen(char str[]);int  MyStrlen(char str[])
{int  i;int len = 0;for (i = 0; str[i] != '\0'; i++){len++;}return (len);
}int main()
{char   a[80];int  len;printf("Please enter a string:");gets(a);len = MyStrlen(a);printf("The length of the string is: %d\n", len);return 0;
}

2、

A代表数字0到9中的前五个数字,Z代表后五个数字,请还原下列乘式。问题本身并不复杂,可以对乘式中的每一位使用穷举法,最终可以得到结果。本题的关键在于怎样有效的判断每个部分积的每一位是否满足题意,这一问题处理不好,编写的程序会很长。
A代表数字0到9中的前五个数字,Z代表后五个数字,请还原下列乘式。
A Z A
× A A Z
------------
A A A A
A A Z Z
Z A A
------------
Z A Z A A

*问题分析与算法设计
问题本身并不复杂,可以对乘式中的每一位使用穷举法,最终可以得到结果。本题的关键在于怎样有效的判断每个部分积的每一位是否满足题意,这一问题处理不好,编写的程序会很长。程序实现中采用了一个判断函数,通过传入函数的标志字符串对所有的数进行统一的判断处理。

*程序说明与注释
 

#include<stdio.h>
void print(long a, long b, long s1, long s2, long s3);
int jud(long q, char* pflag);
int main()
{long i, j, k, l, m, n, term, t1, t2, t3;int flag;for (i = 0;i <= 4;++i) /*被乘数的第一位*/for (j = 5;j <= 9;++j) /*被乘数的第二位*/for (k = 0;k <= 4;++k) /*被乘数的第三位*/{term = 100 * i + 10 * j + k; /*被乘数*/for (flag = 0, n = 0;n < 4 && !flag;) /*乘数的第一位*/flag = jud((t3 = ++n * 100 * term) / 100, "001"); /*判断第三个部分积*/if (flag){for (flag = 0, m = 0;m < 4 && !flag;) /*乘数的第二位*/flag = jud((t2 = ++m * 10 * term) / 10, "1100"); /*判断第二个部分积*/if (flag){for (flag = 0, l = 5;l < 9 && !flag;) /*乘数的第三位*/flag = jud(t1 = ++l * term, "0000"); /*判断第一个部分积*/if (flag && jud(t1 + t2 + t3, "00101")) /*判断乘式的积*/print(term, n * 100 + m * 10 + l, t1, t2, t3);}}}
}void print(long a, long b, long s1, long s2, long s3) /*打印结果*/
{printf("\n %ld\n", a);printf("*%ld\n", b);printf("......................\n");printf(" %ld\n %ld\n %ld\n", s1, s2 / 10, s3 / 100);printf("......................\n");printf(" %ld\n", a * b);
}
int jud(long q, char* pflag) /*判断一个数的每一位是否满足要求的判断函数*/
/*q:需要判断的数。pflag:标志字符串,A用1表示,Z用0表示。标志串排列顺序:个十百...*/
{while (q != 0 && *pflag != NULL) /*循环判断对应位的取值范围是否正确*/if (*pflag - '0' != (q % 10 >= 5 ? 1 : 0)) /*标志位与对应的位不符,返回0*/return 0;else{q /= 10;++pflag; /*若相符则取下一位进行判断*/}if (q == 0 && *pflag == NULL) /*q的位数与标志字符串的长度相同时,返回1*/return 1;else return 0;
}

3、不使用字符串处理函数strcat()编程实现strcat()的功能,即任意输入两个字符串,然后连接这两个字符串,返回连接后字符串的首地址。
程序的运行示例如下:
Input the first string:Hello
Input the second string:China
The result is: HelloChina

#define _CRT_SECURE_NO_WARNINGS 1
#include  <stdio.h>
#include  <string.h>void test(char a[], char b[])
{int len = 0;int i = 1;for (i = 0;a[i] != '\0'; i++){len++;}for (i = len;b[i - len] != '\0';i++){a[i] = b[i - len];}int n = 0;printf("The result is: ");for (n = 0;n <= i;n++){printf("%c", a[n]);}
}
int main()
{char   a[100] = {0};char b[100] = {0};int  len=0;int i = 0;printf("Input the first string:");gets(a);printf("Input the second string:");gets(b);test(a, b);return 0;
}

4、请按给定的函数原型编程实现两个数组中对应该元素值的交换(数组的长度定义成5)。 
函数原型:void exchange(int a[5],int b[5]) 
要求:
在主函数中输入两个数组中各元素的内容;
调用函数exchange实现两个数组中对应该元素值的交换;
在主函数中输出交换后两个数组的内容。
****输入提示信息格式: 无
****输入数据格式要求: "%d"
****输出提示信息格式:"Output array a:"
                     "Output array b:"
****输出数据格式要求:"%5d"

#define _CRT_SECURE_NO_WARNINGS 1
#include  <stdio.h>void exchange(int a[5], int b[5])
{int i = 0;for (i = 0;i < 5;i++){int temp = 0;temp = a[i];a[i] = b[i];b[i] = temp;}printf("Output array a:");for (i = 0;i < 5;i++){printf("%5d", a[i]);}printf("Output array b:");for (i = 0;i < 5;i++){printf("%5d", b[i]);}}int main()
{int i = 0;int a[5] = { 0 };int b[5] = { 0 };for (i = 0;i < 5;i++){scanf("%d", &a[i]);}for (i = 0;i < 5;i++){scanf("%d", &b[i]);}exchange(a,b);return 0;
}

5、程序:数列求和
编写一个程序对用户输入的整数数列进行求和计算。
**输入格式要求:"%d" 提示信息:"This program sums a series of integers.\n" "Enter integers (0 to terminate):"
**输出格式要求:"The sum is: %d\n" 
下面显示的是用户可见的内容:
This program sums a series of integers.
Enter integers (0 to terminate) : 8 23 71 5 0
The sum is : 107

#define _CRT_SECURE_NO_WARNINGS 1
#include  <stdio.h>
int main()
{int i = 0;int arr[100] = { 0 };int sum = 0;printf("This program sums a series of integers.\nEnter integers (0 to terminate) : ");do{scanf("%d",&arr[i]);i++;} while (getchar() != '\n');int n = 0;for (n = 0;n < i;n++){sum = sum + arr[n];}printf("The sum is : %d", sum);return 0;
}

6、编写程序,打印1~999之间的全部同构数。所谓同构数,是指该数出现在它的平方数的右侧。如25^2=625,25出现在625的右端,25就是同构数。
***输入提示信息:无
***输入数据格式:无
***输出提示信息:"Print all the isomorphism between 1-999:\n"
***输出数据格式:"%d "
注:输出提示信息请放在循环体之外

#include <stdio.h>
int main()
{int i;printf("Print all the isomorphism between 1-999:\n");for(i=1;i<=999;i++){if		(i<10)	{if(i*i%10==i)		printf("%d ",i);}else if	(i<100)	{if(i*i%100==i)		printf("%d ",i);}else			{if(i*i%1000==i)	printf("%d ",i);}}return 0;
}

7、

从键盘输入n,然后计算并输出1~n之间的所有数的阶乘值。
**输入格式要求:"%d" 提示信息:"Please enter n:"
**输出格式要求:"%d! = %ld\n"
程序运行示例如下:
Please enter n:10
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800

#include <stdio.h>
main()
{  	   	int   i, n;long  p = 1;printf("Please enter n:");scanf("%d", &n);for (i = 1; i <= n; i++){  	   	p = p * i;printf("%d! = %ld\n", i, p); 	/* 输出1~n之间的所有数的阶乘值 */}
} 

8、从键盘输入一个英文字母,如果它是大写英文字母,则将其转换为小写英文字母,如果它是小写英文字母,则将其转换为大写英文字母,然后将它及其ASCII码值显示到屏幕上,如果不是英文字母,则不转换直接输出到屏幕上。
**输入格式要求:提示信息:"Press a key and then press Enter:"
**输出格式要求:"%c, %d\n"
程序运行示例1如下:
Press a key and then press Enter:A
a, 97
程序运行示例2如下:
Press a key and then press Enter:a
A, 65

#include<stdio.h>
int main()
{char ch;printf("Press a key and then press Enter:");scanf("%c", &ch);if (ch >= 'a'&&ch <= 'z'){ch = ch - 32;printf("%c, %d\n", ch, ch);}else if(ch >= 'A'&&ch <= 'Z'){ch = ch + 32;printf("%c, %d\n", ch, ch);}else{printf("%c, %d\n", ch, ch);}return 0;
}

9、一辆卡车违反了交通规则,撞人后逃逸。现场有三人目击该事件,但都没有记住车号,只记住车号的一些特征。甲说:车号的前两位数字是相同的;乙说:车号的后两位数字是相同的,但与前两位不同;丙是位数学家,他说:4位的车号正好是一个整数的平方。现在请根据以上线索帮助警方找出车号以便尽快破案。
**输出格式要求:"The number is:%d\n"

#include <stdio.h>
int main()    
{              int i,j,k,m ; for (i = 0 ; i <= 9 ; i++){for (j = 0 ; j <= 9 ; j++){if ( i != j ){k = i * 1000 + i * 100 + j * 10 + j ;for (m = 3 ; m * m <= k ; m++)       //因为四位车牌最小为0011 所以m最小为3//{                                    if (m*m == k){printf("The number is:%d\n",k);}}}}}return 0 ;
}

10、假设银行一年整存零取的月息为1.875%(年息为12*1.875%,年息按复利计算),现在某人手头有一笔钱,他打算在今后5年中,每年年底取出1000元作为孩子来年的教育金,到第5年孩子毕业时刚好取完这笔钱,请采用逆推法编程计算第1年年初时他应存入银行多少钱。
**输出格式要求:"He must save %.2f at the first year.\n"
程序运行示例如下:
He must save 2833.29 at the first year.

#include<stdio.h >
#define a 12*1.875/100//利息
int main()
{int i = 0;double x = 0;//从公式上看就是:(((x*(1*a)-1000)*(1+a)-1000)*(1+a)-1000)...=0while (i < 5){x = (x + 1000) /(1+ a);//不要忘了1i++;}printf("He must save %.2f at the first year.\n",x);return 0;
}

今天的内容就分享到这,期待我们再见!

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com