记录知识点考点及相关延伸
下面代码题均出自于牛客网
选C
C、 struct Stu结构体,属于自定义类型 自定义类型:自己创造出来的;内置类型:C语言本身携带。2.
选D
对选项A的解释:C语言不止main函数一种主函数int ADD(int x,int y)
{
int z=x+y;
return z;
}
int main()
{
int a=10;
return 0;
}
//不能说z函数的作用域在main函数内部
3.
选B
”局部变量优先原则“。小技巧:课本上问程序结果的题不会做,可以放到编译器里进行运行和思考,以巩固所学。
#includeint main() { printf("I lost my cellphone!n"); return 0; }
建议:牛客网刷题时可以==复制题目要求==,避免出错。如本题输出内容“I lost my cellphone!”。
#includeint main() { printf(" ** n"); printf(" ** n"); printf("************n"); printf("************n"); printf(" * * n"); printf(" * * n"); return 0; }
注:没什么特别规律,不必要写成循环。
6.
选C
0的含义| 0——数字0 |
|---|
| ‘0’——字符0,ASCII码值 48 |
| ‘ ’——转义字符,字符串结束标志,ASCII码值是0 |
| EOF——end of file 文件的结束标志 |
| NULL——空指针,本质是0 |
#define EOF (-1) //scanf、getchar读取失败的时候会返回EOF #define NULL((void*)0)//强制类型转换 #define NULL 0 int*p=NULL //右击转到定义
7.
选B(定义)
8.
选C(详细表格请阅读笔者上篇文章)
9.
选C
strlen查找的是‘ ’。若’ ’未定义,strlen查找的则是随机值。10.
选B
C99 标准之前,数组的大小是不能使用变量
C99 标准中增加:变长数组,数组的大小可以是变量,但是这样的数组是不能直接初始化的。VS Code环境下:
#include//linux 的环境下 //gcc编译器是支持C99变长数组的 int main() { int n=10; int arr[n]; return 0; }
11.
选A
7、121分别是一个字符 12.写一个函数求两个整数的较大值int MAX(int x,int y)
{
if(x>y)
return x;
else
return y;
}
//或者写成三目操作符
int MAX(int x,int y)
{
return (x > y ? x : y);
}
int main()
{
int a=0;
int b=0;
scanf("%d %d",&a,&b);
//求较大值
int m=MAX(a,b);
printf("%dn",m);
return 0;
}
#includeint main() { int a=40; int b=0; int c=212; b=(-8+22)*a-10+c/2; printf("%dn",b); return 0; } //改进 #include int main() { int a=40; int c=212; printf("%dn",(-8+22)*a-10+c/2); return 0; }
注意:数学符号对应的代码符号
14.多组输入,表明一个人的智商。#include在 cplusplus.com 上查找scanf:int main() { int iq=0; //输入 scanf("%d",&iq); if(iq>=140) { printf("Geniusn"); } return 0; }//只能处理一组数据 int main() { int iq=0; //输入 //EOF -> -1 while(scanf("%d",&iq)==1) //等价于while(scanf("%d",&iq)!==EOF) { if(iq>=140) { printf("Geniusn"); } } return 0; }
int main()
{
int a=0;
int b=0;
int ret=scanf("%d %d",&a,&b);
//4 5 ret=2
//5 (ctrl+z)*3 ret=1
//CodeBlock (ctrl+z)*1
printf("ret=%dn",ret);
printf("ret=%dn",a);
printf("ret=%dn",b);
return 0;
}
15.判断一个整数是否能被5整除
#includeint main() { int M=1; scanf("%d",&M); if(M%5==0) printf("YES"); else printf("NO"); return 0; }
选B
17.
选C
18.
选B
参考初始C语言讲解
19.
选C
#define预处理指令
20.
选A
21.计算商和余数#include22.反向输出一个四位数int main() { int a=0; int b=0; scanf("%d %d",&a,&b); printf("%d %d",a/b,a%b); return 0; }
#include23.计算平均成绩//解析: //1234 //4321 //1234%10=4 //1234/10=123 //123%10=3 //123/10=12 //12%10=2 //12/10=1 //1%10=1 //1/10=0 int main() { int n=1000; if(1000<=n&&n<=9999) { scanf("%d",&n); while(n) { printf("%d",n%10); n=n/10; } } return 0; } //修改代码 int main() { int n=0; scanf("%d",&n);//1234 while(n) { printf("%d",n%10); n=n/10; } return 0; }
//法1
int main()
{
int a=0;
int b=0;
int c=0;
int d=0;
int e=0;
scanf("%d %d %d %d %e",&a,&b,&c,&d,&e);
printf("%.1lf",(a+b+c+d+e)/5.0);
return 0;
}
//法3
int main()
{
int n=0;
int i=0;
int sum=0;
while(i<5)
{
scanf("%d",&n);
sum+=n;
i++;
}
printf("%.1lf",sum/5.0);
return 0;
}
//法2
#include
int main()
{
int score[5]={0};
int sum=0,i=0;
for(i=0;i<5;i++)
{
scanf("%d",&score[i]);
sum+=score[i];
}
double ave=sum/5.0;
printf("%.1lf",ave);
return 0;
}
24.判断两个数大小
//法1
int main()
{
int a=0;
int b=0;
while(scanf("%d %d",&a,&b)==2)
{
if(a>b)
{
printf("%d>%dn",a,b);
}
else if(a
printf("%d<%dn",a,b);
}
else
{
printf("%d=%dn",a,b);
}
}
return 0;
}
//法2
#include
int main ()
{
int a = 1 ;
int b = 1 ;
while(scanf("%d %d",&a,&b)!=EOF)
{
if(a==b)
{
printf("%d=%dn",a,b);
}
else if( a>b)
{
printf("%d>%dn",a,b);
}
else
printf("%d<%dn",a,b);
}
return 0;
}
25.时间转换
#include//3661 //s/3600=1h //s%3600=61 //61/60=1min //61/60=1s int main() { int seconds; scanf("%d",&seconds); if(0 int h=seconds/3600; int m=seconds/60%60; //int m=(second%3600)/60; int s=seconds%60; //int s=(s%3600)%60; printf("%d %d %d",h,m,s); } return 0; }
| 1 h = 60 min = 3600 s |
|---|
| 1 min = 60 s |
#include//3661 //s/3600=1h //s%3600=61 //61/60=1min //61/60=1s int main() { int seconds; scanf("%d",&seconds); if(0 int h=seconds/3600; int m=seconds/60%60; //int m=(second%3600)/60; int s=seconds%60; //int s=(s%3600)%60; printf("%d %d %d",h,m,s); } return 0; }
| 1 h = 60 min = 3600 s |
|---|
| 1 min = 60 s |



