自媒体网站源码模板dede,什么是sns网站,用vs2010做的网站,做运营的具体做什么目录 选择题一选择题二选择题三选择题四选择题五编程题一 选择题一
已知函数的原型是#xff1a; int fun(char b[10], int *a);
设定义#xff1a; char c[10];int d; #xff0c;正确的调用语句是#xff08; #xff09;
A: fun(c,d); B: fun(c,d); C: fun( int fun(char b[10], int *a);
设定义 char c[10];int d; 正确的调用语句是
A: fun(c,d); B: fun(c,d); C: fun(c,d); D: fun(c,d);【答案】A 【分析】 数组在传参时我们需要注意参数类型对于数组而言传参时我们可以直接省略[]和里面的数字 指针当传参时为指针时我们就需要注意了指针int*a表示传入参数为整形类型的指针地址因此表示整形地址则需和整形类型的元素d
选择题二
请问下列表达式哪些会被编译器禁止【多选】 int a 248, b 4;
int const *c 21;
const int *d a;
int *const e b;
int const * const f a;A: *c 32; B: *d 43 C: ea D: f0x321f【答案】ABCD 【分析】这道题注意是考察const的理解 int const c 21因为const在c的左边因此为常量指针即c是不能改变的所以c32错误但是只是*c不能改变c是可以改变的比如ca… const int d a因为const在d的左边因此d不能改变这个和上边的错误一样 int const e b const只在e的左边因此只有e不能被改变而e是可以改变的因此ea错误但是e248是正确的 int const * const f a我们可以看到有两个const一个在f左边另一个在f左边因此不管是f还是f都是不能被改变的f0x321f是16进制表示的是地址反正不管是f还是*f改变都是错的
选择题三
以下程序的输出结果为 #include stdio.h
int i;
void prt()
{
for (i 5; i 8; i)
printf(%c, *);
printf(\t);
}
int main()
{
for (i 5; i 8; i)
prt();
return 0;
}A: *** B: *** *** *** *** C: *** *** D: * * *【答案】A 【分析】注意int i是全局变量因此生命周期和主函数一样只有当程序销毁了才会消失 在prt循环后i8跳出prt后主函数循环中i8是满足i8然后i使i9由于i9在prt中不满足循环条件i8直接跳出循环最终值输出了*** 注意不是prt循环三次跳出后在主函数中再循环然后又进prt中循环这样的结果是B是因为没有理解到全局变量的含义。 \t的含义约等于TAB键可以理解为按了几次空格键 下面是我用调试对关键过程的截图
选择题四
下面代码段的输出是 int main()
{
int a3;
printf(%d\n,(aa-a*a));
return 0;
}A: -6 B: 12 C: 0 D: -12【答案】D 【分析】这种题我觉得就和我之前写的一篇博客讲的一样操作符详解下非常详细有点花里胡哨根本没必要这样来写如果分步骤来写的话清晰明了 下面是对这道题的分析 这种算法是从右向左进行的因此先看a-a*a这样算出的结果a-6再看aa这样算出结果是-12。
选择题五
下列不能实现死循环的是
A: while(1){} B: for(;1;){} C: do{}while(1); D: for(;0;){}【答案】 D 【分析】对于while来说要想实现死循环只需让while里面的内容为真并且while里面的语句没有break就可以实现死循环 而for中xx为1则为真死循环为0则为假不循环。
编程题一
题目链接
首先输入要输入的整数个数 n 然后输入 n 个整数。
输出为 n 个整数中负数的个数和所有正整数的平均值
结果保留一位小数。
注意 0 即不是正整数也不是负数不计入计算
本题有多组输入用例。
输入描述首先输入一个正整数 n 然后输入 n 个整数
输出描述输出负数的个数和所有正整数的平均值【题目分析】题目要求输出负数的个数和正整数的平均值并且要排除输入0的情况因此需要用到if语句将这几种情况分开 我们假设sum0为统计输入负数的个数average0为正整数的平均值x为输入的数字当输入负数是sum而输入正整数时averagex 0这种情况就有点麻烦我们还需要设一个y0当输入0时y–并且将x赋值为1这样x有0变到1y由0变到-1这样输入0是xy就可以抵消并且y也就统计出了输入0的个数之后我们就可以在计算平均值时加上y就相当于减去输入0的个数值得注意的是负数的个数也需要减去我因为没有减所以一直没做出来 【代码】
#includestdio.h
int main()
{int n, sum 0, x, y 0;double average 0;scanf(%d, n);for (int i 1; i n; i){scanf(%d, x);if (x 0){x 1;average x;/*因为这样做xy0这样就可以抵消并且n最后也可以减掉x0的个数*/y--;}else if (x 0){average x;//x为正数}else{sum;//x为负数}}if (n y 0)average 0.0;//全部为0的情况else{average average y;/*不全部为0的情况y后就把x0变成x1的都减掉*/n n y-sum;//减去x0的个数average average / n;//算平均值}printf(%d %.1f, sum, average);return 0;
}