首页 福建省计算机二级c语言选择题题库

福建省计算机二级c语言选择题题库

举报
开通vip

福建省计算机二级c语言选择题题库    答案 试题 C  1.  在C语言源程序中,以下叙述正确的是(  )。  A. main函数必须位于文件的开头      B. 每行只能写一条语句      C. 程序中的一个语句可以写成多行  D. 每个语句的最后必须有点号 C  2.  关于C语言的源程序的叙述中,错误的是(  )。  A. C语言的源程序由函数构成  B. main函数可以书写在自定义函数之后       C. 必须包含有输入语句  D. 一行可以书写多个语句  C  3.  关于C语言数据类型的叙述,正确的是(  )。  A. 枚举...

福建省计算机二级c语言选择题题库
    答案 试题 C  1.  在C语言源程序中,以下叙述正确的是(  )。  A. main函数必须位于文件的开头      B. 每行只能写一条语句      C. 程序中的一个语句可以写成多行  D. 每个语句的最后必须有点号 C  2.  关于C语言的源程序的叙述中,错误的是(  )。  A. C语言的源程序由函数构成  B. main函数可以书写在自定义函数之后       C. 必须包含有输入语句  D. 一行可以书写多个语句  C  3.  关于C语言数据类型的叙述,正确的是(  )。  A. 枚举类型不是基本类型  B. 数组不是构造类型  C. 变量必须先定义后使用  D. 不允许使用空类型 C  4.  C程序中main函数的位置( )。  A. 必须在最开始  B. 必须在系统库函数后面  C. 可以在自定义函数后面  D. 必须在最后 B  5.  C语言的函数体由( )括起来。  A. ( )  B.  { }  C.  [ ]  D.  /* */ D  6.  关于C语言的叙述中,不正确的是( )。  A. C程序可由一个或多个函数组成  B. C程序必须包含一个main()函数  C. C程序的基本组成单位是函数  D. 注释说明只能位于一条语句的后面 D  7.  以下叙述不正确的是(  )。  A. C程序的执行总是从main函数开始  B. 一个C源程序必须包含一个main函数  C. C语言程序的基本组成单位是函数  D. 在编译C程序源程序时,可发现注释中的拼写错误 C  8.  结构化程序设计的三种基本结构是(  )。  A. 函数结构、分支结构、判断结构  B. 函数结构、嵌套结构、平行结构  C. 顺序结构、分支结构、循环结构  D. 分支结构、循环结构、嵌套结构 C  9.  对于C语言源程序,以下叙述错误的是(  )。  A. 可以有空语句  B. 函数之间是平等的,在一个函数内部不能定义其它函数  C. 程序调试时如果没有提示错误,就能得到正确结果  D. 注释可以出现在语句的前面 D  10.  下面关于C语言用户标识符的描述,正确的是(  )。  A. 不区分大小写  B. 用户标识符不能描述常量  C. 类型名也是用户标识符  D. 用户标识符可以作为变量名 D  11.  以下(  )是正确的变量名。  A. 5f  B. if  C. f.5  D. _f5 D  12.  以下(  )是正确的常量。  A. E-5  B. 1E5.1  C. 'a12'  D. 32766L D  13.  以下(  )是正确的变量名。  A. a.bee  B. -p11  C. int  D. p_11 C  14.  以下(  )是正确的字符常量。  A. "c"  B. '\\''  C. 'W'  D. "\32a" A  15.  以下(  )是不正确的字符串常量。  A. 'abc'  B. "12'12"  C. "0"  D. " " B  16.  以下(  )是错误的整型常量。  A. -0xcdf  B. 018  C. 0xe  D. 011 B  17.  以下(  )是正确的浮点数。  A. e3  B. .62  C. 2e4.5  D. 123 A  18.  若有说明语句:char c='\95'; 则变量c包含(  )个字符。  A. 1  B. 2  C. 3  D. 语法错误 A  19.  若有定义:int a=2; 则正确的赋值表达式是(  )。  A. a-=(a*3)  B. double(-a)  C. a*3  D. a*4=3 C  20.  语句x=(a=3,b=++a);运行后,x、a、b的值依次为(  )。  A. 3,3,4  B. 4,4,3  C. 4,4,4  D. 3,4,3 B  21.  语句a=(3/4)+3%2;运行后,a的值为(  )。  A. 0  B. 1  C. 2  D. 3 A  22.  char型变量存放的是( )。  A. ASCII代码值  B. 字符本身  C. 十进制代码值  D. 十六进制代码值 C  23.  若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为( )。  A. 3,3  B. 4,4  C. 4,3  D. 3,4 B  24.  若有定义:int a; 则语句a=(3 * 4)+ 2 % 3;运行后,a的值为( )。  A. 12  B. 14  C. 11  D. 17 A  25.  若有定义:int a,b; double x,则以下不符合C语言语法的表达式是(  )。  A. x%(-3)  B. a+=-2  C. a=b=2  D. x=a+b B  26.  若有定义:int x=2,y=3;float i;,则以下符合C语言语法的表达式是(  )。  A. x=x*3=2  B. x=(y==1)  C. i=float(x)  D. i%(-3) C  27.  设double型变量a,b,c,e均有值;对代数式(3ae)/(bc),不正确的C语言表达式是(  )。  A. a/b/c*e*3  B. 3*a*e/b/c  C. 3*a*e/b*c  D. a*e/c/b*3 B  28.  下面叙述正确的是(  )。  A. 2/3 与 2.0/3.0  等价  B. (int)2.0/3 与 2/3 等价  C. ++5 与 6 等价  D. 'A'与"A"等价 A  29.  下面叙述中,错误的是(  )。  A. 其算术运算对象不包含函数  B. %(模运算符)的运算对象只能为整型量  C. 算术运算符的结合方向是"自左至右"  D. 自加和自减运算符的结合方向是"自右至左" A  30.  下面叙述正确的是(  )。  A. 强制类型转换运算的优先级高于算术运算  B. 若a和b是整型变量,(a+b)++是合法的  C. 'A'*'B' 是不合法的  D. "A"+"B"是合法的 B  31.  若有定义:int k,i=2,j=4; 则表达式 k=(++i)*(j--) 的值是( )。  A. 8  B. 12  C. 6  D. 9 C  32.  设整型变量a为5,使b不为2的表达式是( )。  A. b=(++a)/3  B. b=6-(--a)  C. b=a%2  D. b=a/2 C  33.  若有定义:int a=1,b=2,c=3; 则语句 ++a||++b&&++c;运行后b的值为( )。  A. 1  B. 0  C. 2  D. 3 B  34.  若有定义:int i,j;则表达式(i=2,j=5,i++,i+j++)的值是(  )。  A. 7  B. 8  C. 9  D. 10 B  35.  若有定义:int a,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是(  )。  A. 7  B. 8  C. 9  D. 10 B  36.  若有定义:int m=5,n=3;则表达式(m+1,n+1,(--m)+(n--))的值是(  )。  A. 6  B. 7  C. 8  D. 9 B  37.  已知 int a;使用scanf()函数输入一个整数给变量a,正确的函数调用是(  )。  A. scanf("%d",a);  B. scanf("%d",&a);  C. scanf("%f",&a);  D. scanf("%lf",&a); D  38.  已知 double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是(  )。  A. scanf("%ld",&a);  B. scanf("%d",&a);  C. scanf("%7.2f",&a);  D. scanf("%lf",&a); B  39.  已知 char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是(  )。  A. scanf("%d",&a);  B. scanf("%lf",&a);  C. scanf("%c",&a);  D. scanf("%u",&a); B  40.  putchar()函数的功能是向终端输出( )。  A. 多个字符  B. 一个字符  C. 一个实型变量值  D. 一个整型变量表达式 D  41.  getchar()函数的功能是从终端输入( )。  A. 一个整型变量值  B. 一个实型变量值  C. 多个字符  D. 一个字符 D  42.  若有定义:int x=1234,y=123,z=12;则语句printf("%4d+%3d+%2d", x, y, z);运行后的输出结果为( )。  A. 123412312  B. 12341234123412341231231231212  C. 1234+1234+1234  D. 1234+123+12 A  43.  已有如下定义和输入语句, int a; char c1,c2; scanf("%d%c%c",&a,&c1,&c2); 若要求a、c1、c2的值分别为10、A和B,正确的数据输入是(  )。  A. 10AB  B. 10  A  B  C. 10A  B  D. 10  AB B  44.  已有如下定义和输入语句: int a,b; scanf("%d,%d",&a,&b); 若要求a、b的值分别为10和20,正确的数据输入是(  )。  A. 10  20  B. 10,20  C. a=10,b=20  D. 10;20 D  45.  以下程序的运行结果是(  )。 void main() {   int a=65;   char c='A';   printf("%x,%d",a,c); }  A. 65,a  B. 41,a  C. 65,65  D. 41,65 A  46.  下面叙述中,(  )不是结构化程序设计中的三种基本结构之一。  A. 数据结构  B. 选择结构   C. 循环结构  D. 顺序结构 A  47.  下面叙述中,(  )不是结构化程序设计三种基本结构的共同特点。  A. 先判断后执行  B. 单入口,单出口  C. 程序中没有执行不到的语句  D. 无死循环 A  48.  结构化程序设计不包括(  )。  A. 最优化  B. 自顶而下,逐步细化  C. 模块化设计  D. 结构化编码 D  49.  以下运算符中优先级最高的是( )。  A. >  B. ||  C. &&  D. + A  50.  若有定义:int x=3,y=4;则表达式 !x||y 的值为( )。  A. 1  B. O  C. 3  D. 4 A  51.  若有定义:int i=7,j=8;则表达式 i>=j||ib)&&(y=c>d) 的值为( )。  A. 0  B. 1  C. 5  D. 6 A  61.  若有定义:int a=2,b=3; float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是(  )。  A. 3.5  B. 3.0  C. 2.5  D. 2.0 C  62.  若有定义:int b=7; float a=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4的值是(  )。  A. 2.5  B. 3.5  C. 4.5  D. 5.5 C  63.  若有定义:int a=6,b=2;char c1='a',c2='b';则表达式a+b%5+c2-c1的值是(  )。  A. 7  B. 8  C. 9  D. 表达式错误 B  64.  以下的if语句中,x的值一定被重新赋值的是(  )。  A. if(x==y) x+=y;  B. if(x>y && x!=y );    x+=y;  C. if(x!=y)     scanf("%d",&x);   else     scanf("%d",&y);   D. if(xy) z=x+y; else z=x-y;  A. 3  B. -1  C. 4  D. 不确定  D  68.  若有定义:int a=1,b=2,c=3;则执行以下程序段后a,b,c的值分别为( )。 if (a=6)     printf("%d\n",n);   else     printf("%d\n",++n); }  A. 4  B. 5  C. 6  D. 7 B  73.  设有整型变量x,下述语句(  )不会出现死循环。  A. for(;;x+=1);  B. for(;(x=getchar())!='\n';);  C. while(1) {x++;}  D. for(x=10;;x--); B  74.  对于整型变量x,与while(!x)等价的是(  )。  A. while(x!=0)  B. while(x==0)  C. while(x!=1)  D. while(~x) A  75.  对于整型变量x和y,语句     for(x=0,y=0;(y!=123)&&(x<4);x++) y++;   中的“y++;”被执行(  )。  A. 4次  B. 0次  C. 123次  D. 3次 B  76.  在c语言中while循环和do--while循环的主要区别是( )。  A. do--while循环体内可以使用break语句,while循环体内不能使用break语句  B. do--while的循环体至少无条件执行一次,while的循环体不是  C. do--while循环体内可以使用continue语句,while循环体内不能使用continue语句  D. while的循环体至少无条件执行一次,do--while的循环体不是 B  77.  以下程序段运行后,循环体运行的次数为( )。 int i=10,x; for (;i<10;i++) x=x+i;  A. 10  B. 0  C. 1  D. 无限 D  78.  以下程序段运行后变量n的值为( )。 int i=1,n=1; for (;i<3;i++)    {continue;n=n+i;}  A. 4  B. 3  C. 2  D. 1 B  79.  以下程序的运行结果是(  )。 void main() {   int sum = 0, item = 0;   while(item < 5)   {     item++;     sum += item;     if(sum==5)       break;   }   printf("%d\n",sum); }  A. 10  B. 15  C. 5  D. 6 C  80.  以下程序的运行结果是(  )。 void main() {   int sum = 0, item = 0;   while(item < 5)   {     item++;     sum += item;     if(sum>=6)       break;   }   printf("%d\n",sum); }  A. 10  B. 15  C. 6  D. 7 B  81.  以下程序的运行结果是(  )。 void main() {   int sum = 0, item = 0;   while(item < 5)   {     item++;     if(item == 2)       continue;     sum += item;   }   printf("%d\n",sum); }  A. 10  B. 13  C. 15  D. 1 A  82.  下列数组定义中,正确的是(  )。  A. int a[5]={0};  B. int a[]={0 1 2};  C. int a[5]=0;  D. int a[]; A  83.  下列数组定义中,正确的是(  )。  A. int a[10];  B. int n=10,a[n];  C. int N=10;int a[N];  D. int n;scanf("%d",&n); int a[n]; A  84.  已知 int  a[10];  则对a数组元素引用不正确的是(  )。   A. a[10]  B. a[3+5]  C. a[10-10]  D. a[5] B  85.  若有定义:int a[3]={0,1,2};则a[1]的值为( )。  A. 0  B. 1  C. 2  D. 3 A  86.  若有定义:int a[5]={1,2,3,4,5};则语句a[1]=a[3]+a[2+2]-a[3-1];运行后a[1]的值为( )。  A. 6  B. 5  C. 1  D. 2 D  87.  以下能对一维数组a进行正确初始化的语句是( )。  A. int a[5]=(0,0,0,0,0);  B. int a[5]=[0];  C. int a[5]={1,2,3,4,5,6,7};  D. int a[]={0}; D  88.  下面程序段的运行结果是(  )。 int i=0,a[]={3,4,5,4,3}; do{   a[i]++;  }while(a[++i]<5); for(i=0;i<5;i++)   printf("%d ",a[i]);  A. 4 5 6 5 4  B. 3 4 5 4 3  C. 4 5 5 5 4  D. 4 5 5 4 3  C  89.  下面程序段的运行结果是(  )。 int i=0,a[]={7,5,7,3,8,3}; do{  a[i]+=2;  }while(a[++i]>5); for(i=0;i<6;i++)   printf("%d ",a[i]);  A. 9 7 9 5 10 5  B. 9 5 9 3 10 3  C. 9 5 7 3  8 3  D. 7 5 7 3  8 3  A  90.  下面程序段的运行结果是(  )。 int i=0,a[]={1,2,3,4,5}; do{    a[i]+=10;   }while(a[++i]>2); for(i=0;i<5;i++)   printf("%d ",a[i]);  A. 11  2  3  4  5  B. 1   2  3  4  5  C. 11 12 13 14 15  D. 11 12  3  4  5  C  91.  设有如下程序段: int a[3][3]={1,0,2,1,0,2,1,0,1},i,j,s=0; for(i=0;i<3;i++)   for(j=0;j int f(int x,int y) {   return(x+y); } main() {   int a=2,b=3,c;   c=f(a,b);   printf("%d+%d=%d\n",a,b,c); }  A. 0  B. 2+3=5  C. 2+3=0  D. 3+2=5 D  113.  以下程序运行后屏幕输出为( )。 #include int a=2,b=3; int max(int a,int b) {   int c;           c=a>b?a:b;   return(c); } main() {   int a=4;   printf("%d",max(a,b)); }  A. 2,3  B. 2  C. 3  D. 4 B  114.  以下程序运行后屏幕输出为( )。 #include void f(int i) {   int a=2;   a=i++;   printf("%d,",a); } main() {   int a=1,c=3;   f(c);   a=c++;   printf("%d",a); }  A. 4,3  B. 3,3  C. 4,5  D. 3,5 D  115.  若有如下函数定义: int fun() {  static int k=0;  return ++k; } 以下程序段运行后屏幕输出为(  )。 int i; for(i=1;i<=5;i++) fun(); printf("%d",fun());  A. 0  B. 1  C. 5  D. 6 D  116.  下面程序的输出结果是(  )。 #include  int global=100; fun() { int global=5; return ++global; } void main() {  printf("%d\n",fun()); }  A. 100  B. 101  C. 5  D. 6 B  117.  下列关于C语言函数的描述中,正确的是(  )。  A. 函数的定义可以嵌套,但函数的调用不可以嵌套  B. 函数的定义不可以嵌套,但函数的调用可以嵌套  C. 函数的定义和函数的调用都可以嵌套  D. 函数的定义和函数的调用都不可以嵌套 D  118.  若有以下宏定义, #define MOD(x,y) x%y 则执行以下程序段后,z的值是(  )。 int z,a=15,b=100; z=MOD(b,a);  A. 100  B. 15  C. 11  D. 10 B  119.  以下叙述中,正确的是(  )。  A. “#define PRICE=30”定义了与30等价的符号常量PRICE  B. 预编译处理命令行都必须以“#”开头  C. 宏名只能包含大写字母和数字字符  D. 在程序的一行上可以书写几个有效的宏定义 A  120.  以下叙述中,正确的是(  )。  A. 宏展开不占用运行时间,只占用编译时间  B. 预编译处理命令行必须以分号结束  C. 一个源程序只能有一个预编译处理命令行  D. 使用带参数的宏定义时,应该说明每个参数的数据类型 C  121.  以下的叙述中不正确的是( )。  A. 宏展开不占用运行时间,只占用编译时间  B. 宏名无类型  C. 宏名必须用大写字母表示  D. 预处理命令行都必须以#号开始 A  122.  若有定义:#define PI 3,则表达式PI*2*2的值为( )。  A. 12  B. 4  C. 3  D. 不确定 C  123.  以下程序运行后,屏幕输出为( )。 #define MIN(a,b) ((a)<(b)?(a):(b)) main() {int x=2,y=3,z;      z=2*MIN(x,y);      printf("%d",z); }  A. 2  B. 3  C. 4  D. 6 A  124.  下面程序的输出结果是( )。 #include  #define SQR(x) (x*x) void main() {   int a,b=3;   a=SQR(b+2);   printf("\n%d",a); }  A. 11  B. 25  C. 不定值  D. 产生错误 C  125.  下面程序的输出结果是( )。 #include  #define ONE 1 #define TWO ONE+1 #define THREE TWO+1 void main() {   printf("%d\n",THREE-ONE); }  A. 产生错误  B. 1  C. 2  D. 3 B  126.  以下叙述中正确的是( )。  A. 预处理命令行必须位于C源程序的起始位置  B. 在C语言中,预处理命令行都以"#"开头  C. 每个C程序必须在开头包含预处理命令行:#include  D. C语言的预处理不能实现宏定义和条件编译的功能 D  127.  设有以下语句,则(  )是对a数组元素的不正确引用,其中0≤i<10。     int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a;  A. a[p-a]  B. *(&a[i])  C. p[i]  D. *(*(a+i)) C  128.  对于基类型相同的两个指针变量之间,不能进行的运算是(  )。  A. <  B. =  C. +  D. - B  129.  执行以下程序段的输出结果是(  )。     int a=10,*p=&a;     printf("%d",++*p);  A. 10  B. 11  C. 变量a的地址  D. 变量a的地址 + 1 A  130.  以下程序段运行后*(p+3)的值为( )。 char a[]="good"; char *p; p=a;  A. 'd'  B. '\0'  C. 存放'd'的地址  D. 'o' C  131.  以下程序段运行后*(++p)的值为( )。 char a[5]="work"; char *p; p=a;  A. 'w'  B. 存放'w'的地址  C. 'o'  D. 存放'o'的地址 B  132.  若有定义:int *p,a=4; p=&a;则以下均代表地址的是( )。  A. a,p  B. &a,p   C. &a,*p  D. a,*p D  133.  若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是( )。  A. *p=&a;scanf("%lf",p);  B. *p=&a;scanf("%lf",*p);  C. p=&a;scanf("%lf",*p);  D. p=&a;scanf("%lf",p); A  134.  在16位编译系统上,若有定义int a[]={10,20,30},*p=&a;当执行p++;后下列叙述错误的是( )。  A. p向高地址移了一个字节  B. p与a+1等价  C. 语句printf("%d",*p);输出20  D. p指向数组元素a[1] B  135.  下面语句正确的是( )。  A. int *p; *p=20;    B. char *s="abcdef"; printf("%s\n",s);  C. char str[]="abcd"; str++;  D. char str[]={'a','b','c'};printf("%s",str); D  136.  若有以下程序段,且0≤i<4,0≤j<3,则不能正确访问a数组元素的是(  )。 int i,j,(*p)[3]; int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; p = a;  A. *(*(a+i)+j)  B. p[i][j]  C. (*(p+i))[j]  D. p[i]+j B  137.  若函数fun的函数头为:    int fun(int i, int j) 且函数指针变量p定义如下:    int(*p)(int i, int j); 则要使指针p指向函数fun的赋值语句是(  )。  A. p=*fun;  B. p=fun;  C. p=fun(i,j);  D. p=&fun; D  138.  设有如下变量定义:     char aa[][3]={'a','b','c','d','e','f'};     char (*p)[3]=aa; 则以下程序段的运行结果是(  )。     p++;     printf("%c",**p);  A. a  B. b  C. c  D. d D  139.  以下程序段运行后x的值为( )。 int a[]={1,2,3,4,5,6,7,8}; int i,x,*p; x=1; p=&a[2]; for(i=0;i<3;i++) x*=*(p+i);  A. 不确定  B. 24  C. 120  D. 60 B  140.  以下程序段运行后x的值为( )。   int a[]={1,2,3},b[]={4,2,5}; int *p,*q; int i,x; p=a; q=b; for(i=0;i<3;i++) if(*(p+i)==*(q+i)) x=*(p+i)*2;  A. 2  B. 4  C. 6  D. 不确定 C  141.  以下程序段运行后x的值为( )。   int a[9]={1,2,3,4,5,6,3,8,9}; int *p,*q; int i,x; p=&a[0];  q=&a[8]; for(i=0;i<3;i++) if(*(p+i)==*(q-i)) x=*(p+i)*2;  A. 2  B. 4  C. 6  D. 不确定 A  142.  下面程序的输出结果是( )。 #include void main() {  int i;  char *s="abc";  for(i=0;i<3;i++)    printf("%s\n",s+i); }  A. abc  bc  c  B. c  bc  abc  C. abc  c  bc  D. a  ab  abc A  143.  下面程序的输出结果是( )。 #include  void main() {   char *str="12345",*ps=str+4;  printf("%c\n",ps[-4]); }  A. 1  B. 2  C. 3  D. 错误 A  144.  以下程序执行时,输入1  2  3  4  5<回车>,输出为: #include  #define N 5 void main() { int a[N]; int *p=a; while(pa)   printf("%d ",*(--p)); }  A. 5 4 3 2 1  B. 1 2 3 4 5  C. 2 3 4 5 1  D. 4 3 2 1 5 C  145.  设有以下定义语句: struct student { int num;   char name[10];   float score; } wang,zhang; 则不正确的叙述是(  )。  A. struct是结构体类型的关键字  B. zhang是结构体变量名  C. wang是结构体类型名  D. num,name,score都是结构体类型student的成员名 B  146.  设有以下定义语句: struct student { int num;   char name[10];   float score; } wang,zhang; 则变量wang所占的内存字节数是(  )。  A. 14  B. 16  C. 18  D. 20 B  147.  设有如下定义语句: union u_type   { int i;     double x;     float f;   }; struct str_type   { char str[100];     union u_type u[2];   }; 则语句“printf("%d", sizeof(struct str_type));”的输出结果是(  )。  A. 100  B. 116  C. 120  D. 200 C  148.  若有定义: struct teacher {int num;  char name[10];  char sex;  int age;  float score; }teacher1; 则变量teacher1所占用的内存字节数是( )。  A. 5  B. 14  C. 19  D. 20 C  149.  下列对结构体类型变量定义不正确的是( )。  A. struct teacher {int num;  int age; }teach1;   B. struct  {int num;  int age; }teach1,teach2;  C. struct {int num;  int age; }teacher;    struct teacher teach1;  D. struct teacher  {int num;  int age; };    struct teacher teach1; D  150.  若有定义: struct teacher {int num;  char sex;  int age; }teacher1; 则下列叙述不正确的是( )。  A. struct是结构体类型的关键字  B. struct teacher是用户定义的结构体类型  C. num,sex,age都是结构体变量teacher1的成员  D. teacher1是结构体类型名 D  151.  以下程序的运行结果是( )。 #include  union Utype{   int i;   float f; }u[2]; void main() {  printf("sizeof(u):%d\n",sizeof(u)); }  A. 2  B. 4  C. 6  D. 8 D  152.  以下程序的运行结果是( )。 #include  union Utype{   int i;   float f; }; struct{ char ch[2]; int i; union Utype u; }a; void main() {   printf("sizeof(a):%d\n",sizeof(a)); }  A. 5  B. 6  C. 7  D. 8 D  153.  以下C语言共用体类型数据的描述中,不正确的是( )。  A. 共用体变量占的内存大小等于所需内存最大的成员所占的内存  B. 共用体类型可以出现在结构体类型定义中  C. 在定义共用体变量的同时允许对第一个成员的值进行初始化  D. 同一共用体中各成员的首地址不相同 A  154.  若有以下定义: struct link { int data;    struct link *next; }  *head, *p; 并已建立如下图所示的链表结构:          ┌──┬──┐  ┌──┬──┐         ┌──┬──┐   head →│data│next┼→│data│next┼→...─→│data│NULL│          └──┴──┘  └──┴──┘         └──┴──┘ 指针p指向如下结点:       ┌──┬──┐   p →│data│next│       └──┴──┘             则能够把p所指结点插入到链表中成为链表第2个结点的程序段是(  )。  A. p->next = head->next;  head->next = p;   B. head->next = p;  p->next = head->next;  C. p.next = head.next;  head.next = p;         D. (*head).next = p;  (*p).next = (*head).next; D  155.  若有以下定义: struct link { int data;    struct link *next; }  a,b,c, *head, *p; 其中,指针head指向变量a, p指向变量c,a.next指向变量b,链表结构如下图所示:                a               b                       c          ┌──┬──┐  ┌──┬──┐          ┌──┬──┐   head →│data│next┼→│data│NULL│      p →│data│next│          └──┴──┘  └──┴──┘          └──┴──┘ 则能够把c插入到a和b之间并形成新链表的程序段是(  )。  A. a.next = c; c.next = b;  B. head.next = p; p.next = head.next;  C. head->next = &c; p->next = head->next;  D. (*head).next = p; (*p).next = &b; A  156.  若有以下定义: struct link { int data;    struct link *next; }  *head, *p; 并已建立如下图所示的链表结构:                          p                            ↓                ┌──┬──┐  ┌──┬──┐
本文档为【福建省计算机二级c语言选择题题库】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_861155
暂无简介~
格式:doc
大小:362KB
软件:Word
页数:36
分类:计算机考试
上传时间:2010-10-14
浏览量:79