问题 3:下面哪个表达式的值为4()
A. 11/3+0.5
B. 11.0/3
C. (int)11/3
D. (int)(11.0/3+0.5)
回答:D. (int)(11.0/3+0.5)
这个表达式先进行除法运算,得到11.0/3的结果,约等于3.6667。然后加上0.5,得到4.1667。最后使用整型强制转换将浮点数转换为整数,去掉小数部分,变成4。
问题 4:下面属于合法的C语言长整型常量的是()
A.123369852147
B. 0L
C. 3E4
D.-123369852147
回答:B. 0L
在C语言中,长整型常量可以以十进制、八进制、十六进制表示,并且可以带有后缀L或l。选项B中的0L表示一个长整型常量。
问题 5:下列程序的运行结果是#include<stdio.h>int main(){ int i; for(i=0;i<=6;i++); printf("%d",i); return 0;}
A. 6
B. 7
C. 0123456
D. -123369852147
回答:B. 7
这段程序使用了一个带有分号的for循环,循环体为空语句。所以实际上循环并没有执行任何操作。此时i的值为7,然后输出结果为7。
问题 6:运行如下程序,如果输入abc,则输出结果是#include<stdio.h>#include <string.h>int main(){ char ss[10]="12345"; gets(ss); strcat(ss,"6789"); printf("%s",ss); return 0;}
A. abc12345
B. abc6789
C. abc456789
D. abc45
回答:C. abc456789
这段程序先将字面量字符串"12345"赋值给字符数组ss,然后使用gets函数读取用户的输入,假设输入为"abc",则将"abc"存储到ss中,覆盖掉原来的内容。接下来使用strcat函数将"6789"追加到ss的末尾,得到"abc456789"。最后输出结果为"abc456789"。
问题 8:不合法的main函数命令行参数形式是
A. main(int a, char *c[])
B. main(int argy, char \*argc[])
C. main(int argv, char **argc)
D. main(int argv, char *argc)
回答:B. main(int argy, char \*argc[])
命令行参数形式应该是main(int argc, char *argv[]),其中 argc 表示命令行参数个数,argv 是一个指向字符串数组的指针,每个字符串存储一个命令行参数。选项B中的 argy 是不合法的参数名。
问题 10:关于下列程序,正确的说法是#include<stdio.h>int main(){ int a=5,b=3,c=3; if(b+c=a) printf("###"); else printf("***"); return 0;}
A. 输出###
B. 输出***
C. 有语法错,无法运行
D. 能运行,无输出
回答:C. 有语法错,无法运行
这段程序中的 if 语句条件部分使用了赋值操作符 =,它应该使用相等操作符 ==。所以这是一个语法错误,在编译时会报错,无法运行。
问题 15:设有定义语句int(*D(int);,则以下叙述正确的是
A. f是基类型为int的指针变量
B. f是指向函数的指针变量,该函数具有一个int类型的形参
C. f是指向int类型一维数组的指针变量
D. f是函数名,该函数的返回值是int类型的地址
回答:B. f是指向函数的指针变量,该函数具有一个int类型的形参
根据给定的定义语句 int(*D(int),D 是一个函数,它接受一个 int 类型的参数,并返回一个指向 int 类型的指针变量。因此,f 是一个指向函数的指针变量,该函数具有一个 int 类型的形参。
希望能解答到你的问题。如果还有其他问题,请随时提问。
球一个最佳答案谢谢啦!这对我非常重要!
|