| 
 | 
 
16秋《C语言》在线作业2 
一、单选题: 
1.下关于运算符优先顺序的描述中正确的是(    )          (满分:5) 
    A. 关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符 
    B. 逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符 
    C. 赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符 
    D. 算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符 
2.对下面程序段:#define  A  3#define  B(a) ((A+1)*a) x=3*(A十B(7));正确的判断是(    )          (满分:5) 
    A. 程序错误 
    不许嵌套宏定义 
    B. )x=93 
    C. x=21 
    D. 程序错误 
    宏定义不许有参数 
3.结构化程序设计所规定的三种基本结构是(    )          (满分:5) 
    A. 主程序、子程序、函数 
    B. 树形、网形、环形 
    C. 顺序、选择、循环 
    D. 输入、处理、输出 
4.以下程序有语法性错误,有关错误原因的正确说法是(    )   main(    )  {int G=5,k;void prtchar(    );......k=prtchar(G);......}          (满分:5) 
    A. 语句void  prtchar(    );有错 
    它是函数调用语句 
    不能用void 说明 
    B. 变量名不能使用大写字母 
    C. 函数说明和函数调用语句之间有矛盾 
    D. 函数名不能使用下划线 
5.为了避免在嵌套的条件语句if - else中产生二义性,C语言规定else子句总是与(    )配对          (满分:5) 
    A. 缩排位置相同的if 
    B. 其之前最近的if 
    C. 之后最近的if 
    D. 同一行上的if 
6.在访问一个结构元素前你必须定义(    )          (满分:5) 
    A. 结构体 
    B. 结构体变量 
    C. 定义结构指针 
    D. A和B 
7.下面程序的运行结果是(    )   #include      { int k=0;   char  c='A';   do   {switch(c++)  {case  'A':k++;break;   case  'B':k--;   case  'C':k+=2;break;   case  'D':k=k%2;continue;   case  'E':k=k*10;break;   default:k=k/3;}   k++;}   while(c<'G')          (满分:5) 
    A. k=3 
    B. k=4 
    C. k=2 
    D. k=0 
8.C语言中用于循环结构程序设计的三种常用控制语句是(    )          (满分:5) 
    A. if、for、continue 
    B. if、switch、break 
    C. for、while、do-while 
    D. 顺序结构、选择结构、循环结构 
9.若有说明:int a[3][4]则数组a各元素(    )          (满分:5) 
    A. 可在程序的运行阶段得到初值0 
    B. 可在程序的编译阶段得到初值0 
    C. 不能得到确定的初值 
    D. 可在程序的编译或运行阶段得初值 
10.下面四个选项中,均是非法常量的选项是(    )          (满分:5) 
    A. as' -0fff '\0xa' 
    B. '\\' '\01' 12 
    456 
    C. -0xl8 01177 0xf 
    D. 0xabc  '\0' "a" 
11.若使用一维数组名作函数实参,则以下正确的说法是(    )          (满分:5) 
    A. 必须在主调函数中说明此数组的大小 
    B. 实参数组类型与形参数组类型可以不匹配 
    C. 在被调函数中 
    不需要考虑形参数组的大小 
    D. 实参数组名与形参数组名必须一致 
12.若以下变量均是整型,且num=sum=7;则执行表达式sUM=num++,sUM++,++num后sum的值为(    )          (满分:5) 
    A. 7 
    B. 8 
    C. 9 
    D. 10 
13.不能把字符串:Hello!赋给数组b的语句是(    )          (满分:5) 
    A. char b[10]={'H' 
    'e' 
    'l' 
    'l' 
    'o' 
    '!'}; 
    B. char b[10];b="Hello!"; 
    C. char b[10];strcpy(b 
    "Hello!"); 
    D. char b[10]="Hello!"; 
14.假定ptr1和ptr2分别是指向某个字符串的指针,则在下列选项中非法的语句中是(    )          (满分:5) 
    A. if(ptr1==ptr2) printf("yes."); 
    B. *ptr1=48+(ptr1-ptr2); 
    C. *(ptr1+=2)=*ptr2; 
    D. *(ptr1-1+ptr2)=getchar(    ); 
15.有如下定义:char *s1="AbCdE",*s2="aBcDe"; 则表达式strcmp(s1+1,s2+1)的值是(    )          (满分:5) 
    A. 零 
    B. 负数 
    C. 正数 
    D. 非零值,无法肯定符号 
16.下面程序的运行结果是(    )#include "stdio.h"main(    ){int i; for(i=1;i<=5;i++)  {if(i%2) printf("#");else continue;printf("*");}printf("$");}          (满分:5) 
    A. *#*#$ 
    B. #*#*#*$ 
    C. *#*#$ 
    D. #*#*$ 
17.若调用一个函数,且此函数中没有return语句,则正确的说法是(    )          (满分:5) 
    A. 该函数没有返回值 
    B. 该函数返回若干个系统默认值 
    C. 能返回一个用户所希望的函数值 
    D. 返回一个不确定的值 
18.以下正确的描述是(    )          (满分:5) 
    A. continue语句的作用是结束整个循环的执行 
    B. 只能在循环体内和switch语句体内使用break语句 
    C. 在循环体内使用break语句或continue语句的作用相同 
    D. 从多层循环嵌套中退出时 
     只能使用goto语句 
19.以下叙述中不正确的是(    )          (满分:5) 
    A. 在不同的函数中可以使用相同的名字的变量 
    B. 函数中的形式参数是局部变量 
    C. 在一个函数内定义的变量只在本函数范围内有效 
    D. 在一个函数内的复合语句中定义的变量在本函数范围内有效 
20.若有以下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为6的表达式是(    )          (满分:5) 
    A. *p+6 
    B. *(p+6) 
    C. *(p+5) 
    D. p+5 
 |   
 
 
 
 |