当前位置:网站首页>1. Preliminary exercises of C language (1)
1. Preliminary exercises of C language (1)
2022-07-06 13:42:00 【It's Wang Jiujiu】
Catalog
TEXT 1( Functions and ternary operators )
TEXT 4( Quotient and mold taking )
TEXT 6( Set the domain width )
TEXT 9( Find the maximum number )
TEXT 1( Functions and ternary operators )
Write a function , Enter two different integers , Ask the larger one .
int max(int x, int y)// A return value is required , So set it to int, If no return value is required , You can set void
{
return (x > y ? x:y);// ternary operators ( Conditional operators )
}
#include<stdio.h>
int main()
{
int a = 0, b = 0;
scanf("%d%d", &a, &b);
printf(" The larger number is %d\n", max(a, b));
return 0;
}
Introduce the trinocular operator :
- Format of ternary operator ( expression 1? expression 2: expression 3)
- expression 1 It's true , Execute expression 2; If the expression 1 For false , Execute expression 3.
- (x > y ? x:y) It means : if x>y It's true , Then return to x; if x<y For false , Then return to y.
When a function needs to return a value , Set the function type to int, Again return One integer is enough . If the function doesn't need a return value , Set the function type to void that will do .
because a、b All integer variables , So will a、b The parameters of are passed to max Function time ,max Functions also need to use integers to receive , here a and b Is the argument ,x and y It's a parameter , A formal parameter is a temporary copy of an argument , Changing parameters does not change arguments , How to change arguments through formal parameters ? see TEXT 2.
TEXT 2( The ginseng )
Write a function , Exchange the values of two variables .
void change(int* px, int* py)// Because I'm wearing an address , So use a pointer to receive ,px、py Is a pointer variable
{
int i = 0;
i = *px; // Find... By address a、b Value , Indirect change a、b
*px = *py;
*py = i;
}
int main()
{
int a = 10, b = 20;
printf(" Exchange before :a=%d,b=%d\n", a, b);
change(&a, &b);// Use the address symbol , take a、b Pass the address of to the function
printf(" After exchanging :a=%d,b=%d\n", a, b);
return 0;
}
You can change the arguments through the address , Here we take the address symbol to a、b Send the address of to px、py, Because the parameter passed is an integer , Here we use integer pointer int* receive ,px、py It's a pointer variable , Stored a、b The address of .
hypothesis a The address for 0x0012ff40,b The address for 0x0012ff44, When we take the address symbol, we will a、b Send the address of to px、py after ,px、py What's in it is a and b The address of , By changing the data stored in the address , And then indirectly change a、b Value . Array parameter transfer , It's the address of the first element .
TEXT 3(return)
A function is known y=f(x), When x < 0 when ,y = 10; When x = 0 when ,y = 0; When x > 0 when ,y = -10
Enter an integer x(-10000<x<10000), Find the output value y.
#include<stdio.h>
int fun(int x)
{
if (x > 0)
return -10;
else if (x < 0)
return 10;
else
return 0;
}
int main()
{
int x = 0;
scanf("%d", &x);
printf(" When x=%d when ,y=%d", x, fun(x));
return 0;
}
In the defined function , If it contains multiple nesting , It can be used return Jump out of function , Go straight back to .
TEXT 4( Quotient and mold taking )
Given two integers a and b (0 < a,b < 10,000), Calculation a Divide b The integer quotient and remainder of .
#include<stdio.h>
int main()
{
int a = 0, b = 0;
scanf("%d%d", &a, &b);
printf("a/b=%d,a%%b=%d\n", a / b, a % b);// Want to print % need %%
return 0;
}
%% For escape characters , The function is to show %.
TEXT 5(ASCII code )
Characters represented by character constants or character variables are stored in memory as ASCII Code storage . Convert below ASCII Code for the corresponding characters and output them .73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116 , 33
#include<stdio.h>
int main()
{
char arr[13] = { 73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116 , 33 };
printf("%s\n", arr);
return 0;
}
putchar It can also be used. ASCII Code output corresponding characters , however putchar Only one character can be output at a time , It is troublesome to output strings .
TEXT 6( Set the domain width )
Enter a person's date of birth ( Including mm / DD / yyyy ), There is no separator between the number of year, year and day , Put the year in the birthday 、 month 、 Each day is exported separately .
#include<stdio.h>
int main()
{
int year = 0, month = 0, day = 0;
scanf("%4d%2d%2d", &year, &month, &day);// Intercept data by setting the domain width
printf("year=%d\nmonth=%d\nday=%d\n", year, month, day);
return 0;
}
By setting the domain allowance scanf Intercept data , for example %4d It means : Domain width is 4, The data in it will be stored in year in .
TEXT 7( Escape character )
Print... On the screen
printf("Hello world!\n");
cout << "Hello world!" << endl;
#include<stdio.h>
int main()
{
printf("printf\(\"Hello world!\\n\"\)\;\n");
printf("cout << \"Hello world!\" << endl;\n");
return 0;
}
When the content you want to print is confused with escape characters , Add a \ that will do , For example, I want to print a “\n”, It only needs “\\n” that will do .
TEXT 8(for loop )
Print 1-100 Between all 3 The number of multiples of
#include<stdio.h>
int main()
{
int num = 0;
for (num = 1; num <= 100; num++)
{
if (num % 3 == 0)
{
printf("%d ", num);
}
}
printf("\n");
return 0;
}
The code can also be written as :
#include<stdio.h>
int main()
{
int num = 0;
for (num = 3; num <= 100; num+=3)
{
printf("%d ", num);
}
printf("\n");
return 0;
}
Based on our understanding of Mathematics , You can directly set each print 3 Multiple , Omit the part of judgment .
TEXT 9( Find the maximum number )
get 4 Students' grades , Programming to find the highest score .
#include<stdio.h>
int main()
{
int arr[5] = { 0 };
int i = 0;
int max = 0;
for (i = 0; i < 4; i++)
{
scanf("%d", &arr[i]);
if (arr[i] > max)
{
max = arr[i];
}
}
printf(" The highest score is %d\n", max);
return 0;
}
Because the result can't be negative , So suppose the highest score is 0 branch , Judge every time you enter your grades , If it is higher than the current highest score , Then update the highest score .( The advantage of this method is that every time you input data, you will judge , When the input is completed, the result is also judged , Very simple and fast )
TEXT 10( Bubble sort )
Writing code will give 5 An integer number is output from small to large .
#include<stdio.h>
void change(int* px, int* py)// Exchange two numbers
{
int i = 0;
i = *px;
*px = *py;
*py = i;
}
int main()
{
int arr[6] = {7,8,1,2,6};
int i = 0;
int j = 0;
for (i = 0; i < 4; i++)
{
for (j = 0; j < 5-1-i; j++)
{
if (arr[j] > arr[j + 1])
{
change(&arr[j], &arr[j + 1]);
}
}
}
for (j = 0; j < 5; j++)
{
printf("%d ", arr[j]);
}
return 0;
}
The core idea of bubble sorting is the ratio of two adjacent numbers , Big stand back . The maximum value can be found in the first round of sorting , The second round of sorting can find the second largest value , When sorting goes to n-1 Wheel time , The order has been arranged .
边栏推荐
- 为什么要使用Redis
- 西安电子科技大学22学年上学期《基础实验》试题及答案
- MySQL limit x, -1 doesn't work, -1 does not work, and an error is reported
- [graduation season · advanced technology Er] goodbye, my student days
- Redis的两种持久化机制RDB和AOF的原理和优缺点
- Why use redis
- (超详细onenet TCP协议接入)arduino+esp8266-01s接入物联网平台,上传实时采集数据/TCP透传(以及lua脚本如何获取和编写)
- Leetcode. 3. Longest substring without repeated characters - more than 100% solution
- List set map queue deque stack
- Questions and answers of "signal and system" in the first semester of the 22nd academic year of Xi'an University of Electronic Science and technology
猜你喜欢
About the parental delegation mechanism and the process of class loading
(超详细二)onenet数据可视化详解,如何用截取数据流绘图
凡人修仙学指针-2
[hand tearing code] single case mode and producer / consumer mode
西安电子科技大学22学年上学期《基础实验》试题及答案
Arduino+ds18b20 temperature sensor (buzzer alarm) +lcd1602 display (IIC drive)
[during the interview] - how can I explain the mechanism of TCP to achieve reliable transmission
一段用蜂鸣器编的音乐(成都)
仿牛客技术博客项目常见问题及解答(三)
凡人修仙学指针-1
随机推荐
编写程序,模拟现实生活中的交通信号灯。
西安电子科技大学22学年上学期《射频电路基础》试题及答案
PriorityQueue (large root heap / small root heap /topk problem)
C language Getting Started Guide
为什么要使用Redis
1. C language matrix addition and subtraction method
arduino+水位传感器+led显示+蜂鸣器报警
MPLS experiment
5月27日杂谈
仿牛客技术博客项目常见问题及解答(二)
Implement queue with stack
Leetcode. 3. Longest substring without repeated characters - more than 100% solution
(超详细二)onenet数据可视化详解,如何用截取数据流绘图
Thoroughly understand LRU algorithm - explain 146 questions in detail and eliminate LRU cache in redis
List set map queue deque stack
【九阳神功】2021复旦大学应用统计真题+解析
Aurora system model of learning database
[au cours de l'entrevue] - Comment expliquer le mécanisme de transmission fiable de TCP
Miscellaneous talk on May 14
8. C language - bit operator and displacement operator