初级阶段
1. 课时2作业1
#include <stdio.h>
int main() {
printf("hello, wangdao\n");
return 0;
}
2. 课时2作业2
#include <stdio.h>
int main() {
// int a, b;
// printf("请输入两个数字,请用空格隔开:\n");
// scanf("%d%d", &a, &b);
// printf("两数之和%d:", a+b);
int a, b;
scanf("%d%d", &a, &b);
printf("%d\n", a+b);
return 0;
}
3. 课时2作业3
#include <stdio.h>
int main() {
int i;
scanf("%d", &i);
if (i<= 122 && i>=65)
printf("%c", i);
else
printf("The wrong range of numbers was entered!!!");
return 0;
}
4. 课时3作业1
#include <stdio.h>
int main() {
int year;
scanf("%d", &year);
if(year%4==0&&year%100!=0 || year%400==0){
printf("yes\n");
} else{
printf("no\n");
}
return 0;
}
5. 课时3作业2
#include <stdio.h>
int main(){
int i;
char j;
float k;
scanf("%d %c%f",&i,&j,&k);
printf("%0.2f", i+k+j);
return 0;
}
6. 课时4作业1
#include <stdio.h>
int main(){
int num, originalNum, reverseNum = 0;
scanf("%d", &num);
originalNum = num;
while (num){
reverseNum = reverseNum*10 + num%10; // 取余->取单个数
num = num/10;
// 例如 输入45, 第一次循环得到5赋值给reverseNum,num变成4; 第二次循环50 + 4, 转置成功
}
reverseNum == originalNum? printf("yes\n"): printf("no\n");
return 0;
}
7. 课时4作业2
#include <stdio.h>
int main(){
int n;
scanf("%d", &n);
int i, result = 1;
for(i=1; i >= 1 && i <= n; i++){
result = result*i;
}
printf("%d", result);
return 0;
}
8. 课时5作业1
#include <stdio.h>
int main(){
int n[100], count = 0, element_count, i;
scanf("%d", &element_count);
for (i = 0; i < element_count; ++i)
scanf("%d", &n[i]);
while (i>=0)
if(n[i--] == 2)
count++;
printf("%d", count);
return 0;
}
9. 课时5作业2
#include <stdio.h>
#include <string.h>
int main(){
char c[100];
char d[100] = {0}; // 初始化的目的是为了d有结束符
gets(c);
int i, j;
for(i = 0, j = strlen(c)-1; i < strlen(c); i++, j--)
d[j] = c[i];
int result = strcmp(c, d);
if (result < 0){
printf("%d\n",-1);
}
else if (result > 0)
{
printf("%d\n", 1);
}
else {
printf("%d\n", 0);
}
return 0;
}
10. 课时6作业1
#include <stdio.h>
void change(int *pInt);
int main(){
int i;
scanf("%d", &i);
change(&i);
printf("%d", i);
return 0;
}
void change(int *pInt){
*pInt /=2;
}
11. 课时6作业2
#include <stdio.h>
#include <stdlib.h>
int main(){
int n;
scanf("%d", &n);
char c;
scanf("%c", &c); // 消除标准输入缓冲区中的\n
char *p;
p = (char*)malloc(n); // 强制类型转换为char*
fgets(p, n, stdin); // 不用gets原因是不安全,会访问越界
puts(p);
return 0;
}
12. 课时7作业
#include <stdio.h>
int step(int n) {
if (n == 1)
return 1;
if (n == 2)
return 2;
return step(n - 1) + step(n - 2);
}
int main() {
int n;
scanf("%d", &n);
printf("%d", step(n));
return 0;
}
13. 课时8作业1
14. 课时8作业2
#include <stdio.h>
#include <stdlib.h>
// 当子函数要修改主函数中的p,那么就加引用。 引用如何实现的,完全不需要去关心
void modify_pointer(char* &p) {
p = (char*)malloc(100); // 申请100个字节大小的空间
fgets(p, 100, stdin); // stdin代表标准输入,fgets是安全的, gets(p)是会访问越界的
}
int main() {
char* p = NULL;
modify_pointer(p);
puts(p);
free(p); // 申请的空间不适用后,记得free,避免扣分
return 0;
}