让网站做的有吸引力,wordpress exploit scanner,企业网站改版的好处,推广培训1、选择题 1.1、以下选项中,不能作为合法常量的是 ___B___ A#xff09;1.234e04 B#xff09;1.234e0.4 C#xff09;1.234e4 D#xff09;1.234e0 解析#xff1a;在C语言中#xff0c;合法的浮点常量形式通常遵循以下规则#xff1a;1.可以有整数部分、小数部… 1、选择题 1.1、以下选项中,不能作为合法常量的是 ___B___ A1.234e04 B1.234e0.4 C1.234e4 D1.234e0 解析在C语言中合法的浮点常量形式通常遵循以下规则1.可以有整数部分、小数部分和指数部分。2.指数部分以字母 e 或 E 开头后面跟着一个整数。1.234e0.4这不是一个合法的浮点常量因为指数部分0.4不是一个整数。 1.2、以下定义变量并初始化错误的是____D____。 A) char c1 ‘H’ B) char c1 99 C) char c1 ‘2’ D) char c1 09 解析以0开头的数字在C语言中通常被解释为八进制数。然而八进制数中不应该包含数字8或9。因此09不是一个有效的八进制数这将导致编译错误 1.3、以下定义变量及初始化错误的是_____C_____。 A) int a3b B) int a b3 C) int a b, cd3 D) int a3 b3 解析int a, b, cd3;这是错误的。这里试图将 d 初始化为3并用这个值来初始化 c但是 d 并没有在之前声明或定义因此这是一个编译错误 1.4、设有如下程序( D ) #include stdio.h int main() { int a, b; a 077; b a/5; printf( %d %d \n , a , b); } A) 77, 15.2 B) 77, 15 C) 63, 12.2 D) 63, 12 解析在C语言中以0开头的数字被视为八进制数。所以077实际上是一个八进制数我们需要将其转换为十进制数来理解它的真实值。八进制的077转换为十进制是7*8^17*8^056763。因此a的值为63。b为int整型所以是ba/563/512 1.5、有以下程序 main() { int m,n,p; scanf(m%dn%dp%d,m,n,p); printf(%d%d%d\n,m,n,p); } 若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是 ___B___ Am123n456p789 Bm123 n456 p789 Cm123,n456,p789 D123 456 789 解析scanf的格式字符串指定了如何读取输入数据。在这个程序中scanf的格式字符串是m%dn%dp%d这意味着scanf期望输入数据的格式是类似于m值n值p值的其中值是要读取的整数。因此为了将值123赋给m456赋给n和789赋给p正确的输入应该是m123 n456 p789 1.6、以下程序的正确结果是___C____ #includestdio.h void num() { extern int x,y; int a15,b10; xa-b; yab; } int x, y; int main() { int a7,b5; xab; ya-b; num(); printf(%d,%d\n,x,y); } A) 12,2 B) 不确定 C) 5,25 D) 1,12 解析在main函数中x被赋值为ab即75所以x变为12。同样y被赋值为a-b即7-5所以y变为2。接下来调用num函数。在这个函数中x和y是外部变量可以通过extern关键字在函数内部访问。同时函数内部还定义了两个局部变量a和b它们与main函数中的a和b是不同的变量。在num函数中x被赋值为a-b即15-10所以x变为5。同样y被赋值为ab即1510所以y变为25。所以输出的结果是5,25 1.7 有以下程序 #include stdio.h int fun( ) { static int x1; x*2; return x; } int main( ) { int i, s1; s* fun(); s*fun(); s*fun(); printf(%d\n,s); } 程序运行后的输出结果是 D A)8 B)16 C)32 D)64 解析在main函数中变量s被初始化为1然后连续三次调用fun函数并将返回的结果与s相乘。 下面是程序的执行流程1.s初始化为1。2.第一次调用fun()x为1x乘以2后变为2返回2。因此s变为1 * 2 2。3.第二次调用fun()x为2x乘以2后变为4返回4。因此s变为2 * 4 8。4.第三次调用fun()x为4x乘以2后变为8返回8。因此s变为8 * 8 64。最终printf函数打印出s的值即64。 2、填空题 2.1、以下程序运行时若从键盘输入10 20 30回车。输出结果是 10030 #include stdio.h main() { int i0,j0,k0; scanf(%d%*d%d,i,j,k); // %*d 表示跳过某个输入的内容使下一个输入的内容复制给紧接着的变量表示此数据不读入 printf(%d%d%d\n,i,j,k); } 解析第一个整数10被读取并存储在变量i中所以i为10。第二个整数20被读取但由于%*d的存在它不会被存储在任何变量中而是被跳过。由于j变量在scanf中没有对应的格式说明符因此j的值不会被改变它将保持其初始值0所以j0。第三个整数30被读取并存储在变量k中所以k30。所以输出结果为10030 2.2、以下程序运行的结果是___________。 main( ) { int a1, b2, c3; a; //aa1 cb; { int b4, c; cb*3; ac; printf(“first: %d,%d,%d\n”, a,b,c); ac; printf(“second: %d,%d,%d\n”, a,b,c); } printf(“third: %d,%d,%d\n”, a,b,c); } 解析外层aa112b2cbccb16b213 里层b4,cb*34*312,acaac21214所以first:14,4,12。aac141226所以second:26,4,12。 外层third:26,3,6 3、编程题 3.1、 编写程序用getchar函数读入两个字符给变量c1、c2然后分别用putchar函数和printf函数输出这两个字符并思考一下以下问题 1变量c1、c2应定义为字符型或整型还是二者皆可 答getchar函数返回的是一个int类型的值这是为了可以容纳EOF文件结束标志通常是-1以及所有可能的字符值。因此虽然字符型char变量在大多数情况下可以存储从getchar返回的值但定义为整型int更为安全因为它可以处理所有情况包括EOF。 2要求输出c1和c2值的ASCII码应如何处理用putchar函数还是printf函数 答putchar函数只能输出字符不能输出ASCII码。要输出ASCII码应该使用printf函数。 3整型变量与字符型变量是否在任何情况下都可以互相替换 答不是。虽然char类型在C语言中实际上是一个小整数类型并且在许多情况下可以存储和整型变量相同的信息但它们的范围和用途是不同的。char类型通常用于存储字符数据其范围取决于编译器实现可以是signed或unsigned但通常足以存储ASCII字符集。整型变量如int用于存储更大范围的整数值。 #include stdio.h
int main()
{int c1, c2; //定义为整型因为getchar返回的是int类型printf(Please enter first character: );c1getchar();//读取第一个字符getchar();//读取中间的换行符printf(Please enter second character: );c2getchar();//读取第二个字符//使用putchar输出字符printf(The first character is: );putchar(c1);printf(\n);printf(The second character is: );putchar(c2);printf(\n);//使用printf输出字符的ASCII码printf(ASCII of c1: %d\n, c1);printf(ASCII of c2: %d\n, c2);return 0;
}结果 4、分析题 4.1、使列举static关键字的几个作用 局部变量 在函数内部当你声明一个局部变量为static时这个变量的生命周期会被延长从原来的只在函数执行期间存在变为在整个程序执行期间都存在。这意味着每次函数调用结束后这个变量的值不会被销毁而是会保留下来供下次函数调用时使用。全局变量和函数 在文件作用域即不在任何函数内部中static关键字可以用来声明全局变量或函数的作用范围限制在定义它的文件内。这样其他文件就不能访问到这个变量或函数了这有助于实现封装和模块化。类的成员变量和成员函数 在C的类定义中static关键字也可以用于成员变量和成员函数。静态成员变量和静态成员函数都是类的所有对象共享的。静态成员变量在所有对象中只有一个实例而静态成员函数则可以在没有创建类的对象的情况下被调用。静态类 在C中你还可以创建静态类。静态类只能包含静态成员不能包含非静态成员。静态类不能被实例化只能被继承。 一、隐藏 在我们同时编译多个文件时所有未加static前缀的全局变量和函数都具有全局可见性也就是说其他文件可以看到写同名的函数如果加了static那么其他文件就不能同名函数或者变量对于函数来讲static的作用仅限隐藏 二、保持变量内容的长久 Static修饰的变量会存储到静态数据区静态块会在程序刚开始是完成初始化也是唯一的一次初始化 静态存储区共有两种变量全局变量和static变量 三、默认初始化为0 全局变量也具有这个属性因为静态数据区中所有的字节默认值都是0x00 #include stdio.h Int main() { char c1,c2; int x, y; scanf(“%d”, x); getchar(); c1getchar(); scanf(“%d”, y); getchar(); c2getchar(); if( c1 ‘’ ) c1 ‘-’ else c1 ‘’ ; printf(“%d% c%d% c\n”, x,c1,y,c2); }