18878977809 发表于 2023-9-27 21:08:13

求助下列问题

3.下面哪个表达式的值为4()
A. 11/3+0.5
B. 11.0/3
C. (int)11/3
D. (int)(11.0/3+0.5)
4.下面属于合法的C语言长整型常量的是()
A.123369852147
B. 0L
C. 3E4
D.-123369852147
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
6.运行如下程序,如果输入abc,则输出结果是(
#include<stdio.h>
#include <string.h>
int main(){
char ss="12345";
gets(ss);
strcat(ss,"6789");printf("%s",ss);return 0;
}
A. abc12345
B.abc6789
C. abc456789
D. abc45
8.不合法的main函数命令行参数形式是
A. main(int a, char *c[])
C. main(int argv, char **argc)
B. main(int argy, char *argc[])
D. main(int argv, char *argc)
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.能运行,无输出
15.设有定义语句int(*D(int);,则以下叙述正确的是
A.f是基类型为int的指针变量
B.f是指向函数的指针变量,该函数具有一个int类型的形参
C.f是指向int类型一维数组的指针变量
D.f是函数名,该函数的返回值是int类型的地址

isdkz 发表于 2023-9-27 21:08:28

3. D. (int)(11.0/3+0.5)。这个表达式可以看作是将11.0/3的结果四舍五入取整得到整数4。

4. A. 123369852147 和 D. -123369852147。这两个常量都是长整型的整数常量,可以直接使用。

5. B. 7。for循环中的分号表示循环体为空,因此i会一直增加到7,然后跳出循环,输出i的值为7。

6. C. abc456789。gets函数会读取用户输入的字符串,替换原有的字符串ss,然后strcat函数会将"6789"拼接在后面。因此输出结果为"abc456789"。

8. D. main(int argv, char *argc)。正确的形式应该是main(int argc, char *argv[]),其中argc表示参数个数,argv是一个指向参数字符串数组的指针。

10. C. 有语法错,无法运行。if语句中的判断条件应该是b+c==a,而不是b+c=a。因此会出现语法错误,无法编译运行。

15. B. f是指向函数的指针变量,该函数具有一个int类型的形参。定义语句int(*D(int);表示D是一个函数指针,指向一个具有一个int类型形参的函数,返回值为int类型。因此选项B是正确的。

Mike_python小 发表于 2023-9-27 21:09:28

问题 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="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 类型的形参。

希望能解答到你的问题。如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: 求助下列问题