C语言程序设计复习题二
一.单项选择题
1.按照C语言的规定,能作为用户标识符的是()。
A)int    B)5a    C)abc_123    D)unsigned
2.编译操作的功能是把源程序转换成()。
A)源程序    B)目标程序    C)可执行程序    D)汇编程序
3.定义下面语句,编译会出错的是()。
A)char a='x';    B)char a='\t';    C)char a='cc';    D)char a='\101';
4.以下选项中正确的定义语句是()。
A)double x; y;    B)double x=y=7;    C)double x=7, y=7;    D)double, x, y;
5.若有定义int x, y;并已正确给变量赋值,则以下选项中与表达式(x-y) ? (x++): (y++)中的条件表达式(x-y)等价的是()。
A)(x-y>0)    B)(x-y<0)    C)(x-y<0 || x-y>0)    D)(x-y==0)
6.以下关于long、int和short类型数据占用内存大小的叙述中正确的是()。
A)均占4个字节      B)根据数据的大小来决定所占内存的字节数
C)由用户自己定义    D)由C语言编译系统决定
7.设有定义:int x=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。
A)x++    B)x+=1    C)++x    D)x+1
8.若有定义语句:int x=10;,则表达式x-=x+x的值为()。
A)-20    B)-10    C)0    D)10
9.有以下程序
void main()
{  int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);}
程序运行后的输出结果是()。
A)2,3,3    B)2,3,2    C)2,3,1    D)2,2,1
10.以下叙述中正确的是()。
A)C语言是一种非结构化程序设计语言   
B)结构化程序有顺序、分支、循环三种基本结构组成
C)使用三种基本结构构成的程序只能解决简单问题   
D)结构化程序设计不提倡模块化的设计方法
11.有以下程序
#include <stdio.h>
void main()
{ char e1,e2;
  e1=’A’+’8’-‘4’;
  e2=’A’+’8’-‘5’;
  printf(“%c,%d\n”,e1,e2);
}
已知字母A的ASCII码为65,程序运行后的输出结果是()
A)E,68    B)D,69    C)E,D    D)输出无定值
12.有以下程序
void main()
{  int a=0,b=0;
a=10;  /*给a赋值
b=20;  给b赋值*/
printf("a+b=%d\n",a+b);}
程序运行后输出结果是()。
A)a+b=10    B)a+b=30    C)30    D)出错
13.有以下程序
#include <stdio.h>
void main()
{  int a=1,b=0;
printf(“%d,”,b=a+b);
printf(“%d\n”,a=2*b);
}
程序运行后的输出结果是()。
A)0,0    B)1,0    C)3,2    D)1,2
14.执行以下程序段后,w的值为()。
int w='A', x=14, y=15;
w=((x || y)&&(w<'a'));
A)-1    B)NULL    C)l    D)0
15.当y表示大于1的奇数时,值为0的表达式是()。
A)y%2==1    B)y/2    C)y%2!=0    D)y%2==0
16.有以下程序段
int a, b, c;
a=10; b=50; c=30;
if (a>b) a=b, b=c; c=a;
printf("a=%d b=%d c=%d\n”, a, b, c);程序的输出结果是()。
A)a=10 b=50 c=10    B)a=10 b=50 c=30    C)a=10 b=30 c=10    D)a=50 b=30 c=50
17.当变量c的值不为2、4、6时,值也为“真”的表达式是()。
A)(c==2)||(c==4)||(c==6)   
B)(c>=2&&c<=6)||(c!=3)||(c!=5)   
C)(c>=2&&c<=6)&&!(c%2)   
D)(c>=2&&c<=6)&&(c%2!=1)
18.以下叙述中错误的是()。
A)break语句只能用于switch语句中               
B)在switch语句中可以不使用default
C)break语句只能用在循环体内和switch语句体内   
D)在循环体内使用break语句和continue语句的作用不相同
19.有以下程序
#include <stdio.h>
void main()
{ int i,j,m=55;
for(i=1;i<=3;i++)
for(j=3;j<=i;j++) m=m%j;
printf("%d\n",m);}
程序的运行结果是()。
A)0    B)1    C)2    D)3
20.有以下程序
#include<stdio.h>
void main()
{  int i, j;
for(i=3; i>=1; i--)
for(j=1; j<=2; j++)
printf("%d", i+j);
}
程序的运行结果是()。
A)2 3 4    B)4 3 2 3 4 5 5 4 3    C)2 3    D)4 5 3 4 2 3
21.以下关于字符串的叙述中错误的是()。
A)C语言中没有字符串类型的常量和变量   
B)两个字符串中的字符个数不相同时,也能进行字符串大小的比较
C)不能简单用关系运算符对字符串的大小进行比较   
D)空串不一定比空格打头的字符串小
22.若有定义语句:int n[]={5,4,3,2,1},i=4;,则下面对n数组元素的引用中错误的是()。
A)n[--i]    B)n[2*2]    C)n[n[0]]    D)n[n[i]]
23.若有定义语句:char s[10]="abcdefgh\0\0";,则strlen(s)的值是()。
A)11    B)10    C)9    D)8
24.有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是()。
A)gets(&s[0]);    B)scanf(“%s”,s+1);    C)gets(s);    D)scanf(“%s”,s[1]);
25.函数调用func(f2(v1, v2), (v3, v4, v5), (v6, max(v7, v8)));语句中,func函数的实参个数是()
A)3    B)4    C)5    D)8
26.若函数调用时的实参为普通变量时,以下关于函数形参和实参的叙述中正确的是()。
A)函数的实参和其对应的形参共占同一存储单元   
B)形参只是形式上的存在,不占用具体存储单元
C)同名的实参和形参占同一存储单元             
D)函数的形参和实参分别占用不同的存储单元
27.以下叙述中正确的是()。
printf函数的作用是向终端A)C程序是由一个或一个以上的函数组成   
B)函数调用不可以作为一个独立的语句存在
C)C程序的基本构成单位是语句           
D)C函数必须有形式参数
28.在C函数的定义和调用中,下面描述正确的是()。
A)函数的定义可以嵌套,函数的调用不可以嵌套   
B)函数的定义不可以嵌套,函数的调用可以嵌套
C)函数的定义和调用都不可以嵌套               
D)函数的定义和调用都可以嵌套
29.若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则不能正确执行的语句是()。
A)scanf("%d",&a);   
B)scanf("%d%d%d",&a,&b,&c);   
C)scanf("%d",p);   
D)scanf("%d\n",p);
30.以下关于指针变量的说法中,错误的是()。
A)定义指针变量时,必须指定基类型       
B)定义指针变量时,可以先不指定基类型
C)一个指针变量,只能指向同类型的变量   
D)指针变量的值是地址
31.十进制正整数17的二进制表示形式为(  )。
A10010001    B00010001    C11101110    D00001111
32.不属于十进制小数合法表示形式的是(  )。
A0.123    B-12.35    C.98    D42
33.用户定义的标识符命名规则不包括(  )。
A)标识符只能由英文字母、数字、下划线组成。
B)标识符必须以字母或下划线开头。
C)允许使用C关键字为标识符命名。
D)标识符包含字符长度一般会有最大长度限制,与编译器相关。
34.不能正确完成变量赋值的是(  )。
Aint a, b, c;
a=0;
b=0;
c=0;
Bint a, b, c;
    a=b=c=0;
Cint a=0, b=0, c=0;
Dint a=0; b=0; c=0;
35.C语言中,1/21.0/2的结果分别是(  )。
A00.5    B0.50    C00      D0.50.5
36:程序
#include <stdio.h>
void main()
{
    int n=3;
    printf("%d", n++);
    printf("%d", ++n);
}
的输出结果是(  )。
A35    B45    C34    D44
37.已知
#include  <stdio.h>
2
void main()
{
    double r;
    printf("Input r:");

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