问题描述:


1.选择题(1-4题,每题1分,5-6题,每题2分,共8分)
(1)基于C 语言,对以下语句的数组赋初值问题,理解正确的是( ).
int a[10]={1,2,3,4,5};
A.将5 个初值依次赋给a[1]至a[5],其他元素值为0
B.将5 个初值依次赋给a[0]至a[4],其他元素值为0
C.将5 个初值依次赋给a[6]至a[10],其他元素值为0
D.因为数组长度与初值的个数不相同,所以此语句不正确
(2)若有”char a[20]; scanf("%s",a); printf("%s",a);”语句 ,则当输入串为”Hello World!”时,程序的执行结果是
A.H B.Hello C.Hello World D.Hello World!
(3) 在C 语言中,函数返回值的类型是由( ).
A.C 语言的编译程序,在程序编译时决定
B.由调用该函数的主调函数所决定
C.由return 语句的表达式的类型所决定
D.由定义该函数时指定的函数类型所决定
(4) 以下叙述中正确的是( ).
A.全局变量的作用域一定比局部变量的作用域范围大
B.静态(static)类别变量的生存期贯穿于整个程序的运行期间
C.函数的形参都属于全局变量
D.未在定义语句中赋初值的auto 变量和static 变量的初值都是随机值
(5) 下列程序的输出结果是( ).
#include
main( )
{
char ch[7]="12ab56";
int i,s=0;
for(i=0;ch[i]>'0'&&ch[i]

第一题:B.数组赋值是依次从第一个开始赋值,若赋值元素少于数组大小,则未被赋值的元素自动为0.第二题:B.scanf函数读取值时,遇到第一个空格时不管怎样都结束读取.第三题:D.自己定义的函数,返回值类型也由自己定义.第四题:A.全局变量作用与整个代码中,而局部变量只作用与定义它的代码块中.第五题:A.第一个元素为1,符合条件判断,然后字符1与字符0相减得1,而s=0,所以s为1,之后i变为2,就是取第三个元素,字符a,不符合条件判断,结束循环,s仍为1.最后一题:C.这是个递归函数,只要两个参数不相等就返回后边参数的值,分析判断后,2乘以a仍小于c,所以输出3.
希望我的回答能帮助到你.