江南大学现代远程教育  第二阶段练习题
考试科目:《C语言程序设计》第七章至第九章(总分100分) 
            学习中心(教学点) 批次:            层次:                 
专业:                  学号:                    身份证号:             
姓名:                                                  得分:                 
 
一、单项选择题(本题共20小题,每小题2分,共40分。)
1、有以下程序
main()
{    int    p[7]={11,13,14,15,16,17,18},i=0,k=0;
    while(i<7&&p[i]%2){k=k+p[i];i++;}
    printf("%d\n",k);
}
执行后输出结果是(        )
A、58    B、56        C、45          D、24
2、以下叙述中正确的是(        )
A、全局变量的作用域一定比局部变量的作用域范围大
B、静态(static)类别变量的生存期贯穿于整个程序的运行期间
C、函数的形参都属于全局变量
D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值
3、程序如下:
    #define  N    5
#define  M1  N*3
#define  M2  N*2
main()
{ int i;
i=M1+M2;  printf(“%d\n”,i);
}
程序编译后运行的输出结果是(        )
A、10            B、20            C、25            D、30
4、有如下程序
void      f(int      x,int    y)
{    int    t;
    if(x<y){    t=x;    x=y;    y=t;    }
}
main()
{    int    a=4,b=3,c=5;
    f(a,b);  f(a,c);  f(b,c);
    printf("%d,%d,%d\n",a,b,c);
}
执行后输出结果是(        )
A、 3,4,5              B、 5,3,4          C、 5,4,3            D、 4,3,5
5、有以下程序
main()
{    char    s[]="\n123\\";
    printf("%d,%d\n",strlen(s),sizeof(s));
}
执行后输出结果是(        )
A、 赋初值的字符串有错      B、 6,7        C、 5,6              D、 6,6
6、若已定义的函数有返回值,则以关于该函数调用的叙述中错误的是(        )
A、 调用可以作为独立的语句存在          B、 调用可以作为一个函数的实参
C、 调用可以出现在表达式中                D、 调用可以作为一个函数的形参
7、以下不能正确定义二维数组的选项是(        )
A、 int  a[2][2]={{1},{2}};              B、 int  a[][2]={1,2,3,4};
C、 int  a[2][2]={{1},2,3};          D、 int  a[2][]={{1,2},{3,4}};
8、有以下函数定义:
void fun( int  n,  double  x)  { …… }
若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是(        )
A、fun(int  y,double  m);           B、k=fun(10,12.5);
C、fun(x,n);                        D、void fun(n,x);
9、有以下程序
#define  f(x)    x*x
main( )
{  int i;
  i=f(4+4)/f(2+2);
  printf(“%d\n”,i);
}
执行后输出结果是(        )编程递归函数
A、28            B、22                C、16                D、4
10.以下程序的输出结果是(        )
main()
{  char ch[3][5]={“AAAA”,”BBB”,”CC”};
printf(“\”%s\”\n”,ch[1]);
}
A、 “AAAA”        B、“BBB”       C、 “BBBCC”            D、“CC”
11、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(        )
A、 char s[10]=“abcdefg”;        B、 char t[]=“abcdefg”,*s=t;
C、 char s[10];s=“abcdefg”;      D、 char s[10];strcpy(s,“abcdefg”);
12、以下叙述中正确的是(        )。
A局部变量说明为static存储数,其生存期将得到延长
B全局变量说明为static存储类,其作用域将被扩大
C任何存储类的变量在未赋初值时,其值都是不确定的
D形参可以使用的存储类说明符与局部变量完全相同
13、在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则(        )
A、 称为函数的直接递归调用            B、 称为函数的间接递归调用
C、 称为函数的循环调用              D、 C语言中不允许这样的递归调用
14、C语言中数组下标的下限是(        )
A、1        B、0      C、视说明语句而定          D、无固定下限
15、若有定义int a[2][2]={0};,则以下描述正确的是(        )。
A、 只有a[0][0]的值为0        B、 数组每个元素的值都为0
C、 只有a[0][1]的值为0        D、 以上都不正确
16、下面函数f的定义:
f(int a) {printf("%d",a);}
函数f的返回类型(        )
A、 同参数a的类型相同              B、 是void类型
C、没有返回值                      D、 无法确定
17、以下正确的说法是(        )
A、定义函数时,形参的类型说明可以放在函数体内
B、return后边的值不能为表达式
C、如果函数值的类型与返回值类型不一致,以函数值类型为准
D、如果形参与实参类型不一致,以实参类型为准
18、.C语言标准库函数“strcat(strcpy(STR1,STR2),STR3)”的功能是(        )
A.将串STR1复制到串STR2中后再连接至串STR3之后
B.将串STR1连接至STR2之后再复制至串STR3之后
C.将串STR2复制到串STR1串后再将串STR3连接到串STR1 之后
D.将串STR2连接到串STR1之后再将串STR1复制到串STR3串
19、以下程序的输出结果是(        )
#define  p( v, format)  printf(“v=%format”,v)
#define s(x) 3.5*x*x
main()
{ int a=1,b=2;float s1;
s1=s(a+b);p(s1,f);}
A、s1=31.5      B、v=31.500000ormat    C、v=7.500000ormat      D、s1=7.5
20、下面程序段的运行结果是(        )(注:└┘表示空格)
char c[6]={‘a’,‘b’,‘c’,‘\0’,‘d’,‘\0’};
printf(“%s”,c);
A、abc          B、‘a’‘b’‘c’        C、abc└┘d        D、abc
d              ‘d’

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。