50.能将高级语言编写的源程序转换为目标程序的是().C A:链接程序 B:解释程序 C:编译程序 D:编辑程序
51.具有相同类型的指针变量p与数组a,不能进行的操作是().D A:p=a; B:*p=a[0]; C:p=&a[0]; D:p=&a;
52.为了避免在嵌套的条件语句if—else中产生二义性,C语言规定:else总与( )配对B A:缩排位置相同的if B:其之前最近的未配对的if C:其之后最近的if D:同一行上的if
53.设有说明:char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为().D A:float B:int C:char D:double 54.整型变量x=1,y=3,经下列计算后,x的值不等于6的是C A:x=(x=1+2,x*2) B:x=y>2?6:5 C:x=9-(--y)-(y--) D:x=y*4/2 55.若有定义:int aa[ 8];则以下表达式中不能代表数组元aa[1]的地址的是().C A:&aa[0]+1 B:&aa[1] C:&aa[0]++ D:aa+1 56.若有定义int a[10],*p=a;,则p+5表示A A:元素a[5]的地址 B:元素a[5]的值 C:元素a[6]的地址 D:元素a[6]的值 57. C语言中运算对象必须是整型的运算符是().A A:%= B:/ C:= D:〈=
58.若二维数组a有m列,则在a[i][j]前的元素个数为().B A:j*m+i B:i*m+j C:i*m+j-1 D:i*m+j+1 59.从循环体内某一层跳出,继续执行循环外的语句是A A:break语句 B:return语句 C:continue语句 D:空语句
60.以下运算符中,优先级最高的运算符是().D A:= B:!= C:*(乘号) D:()
61.逻辑运算符两侧运算对象的数据类型().D A:只能是0或1 B:只能是0或非0正数 C:只能是整型或字符型数据 D:可以是任何类型的数据 62.若i为整型变量,则以下循环执行次数是().B for(i=2;i==0;) printf(\A:无限次 B:0次 C:1次 D:2次
63.逗号表达式\的值是( ). C A:15 B:60 C:30 D:不确定 64.fscanf函数的正确调用形式是().D A:fscanf(fp,格式字符串,输出表列); B:fscanf(格式字符串,输出表列,fp); C:fscanf(格式字符串,文件指针,输出表列); D:fscanf(文件指针,格式字符串,输入表列); 65.C语言的switch语句中case后B A:只能为常量 B:只能为常量或常量表达式
C:可为常量或表达式或有确定值的变量及表达式 D:可为任何量或表达式
66.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为().C A:int B:float C:double D:不确定
67. 下列标识符中,不合法的C语言用户自定义标识符是().B
6
A:printf B:enum C:_ D:sin 68.以下定义语句中,错误的是().D A:int a[]={1,2}; B:char *a[3]; C:char s[10]=\69.若有下列定义,则对a数组元素地址的正确引用是().B int a[5],*p=a;
A:&a[5] B:p+2 C:a++ D:&a 70.在C语言程序中().B A:函数的定义可以嵌套,但函数的调用不可以嵌套 B:函数的定义不可以嵌套,但函数的调用可以嵌套 C:函数的定义和函数调用均可以嵌套 D:函数的定义和函数调用不可以嵌套
71.设有定义\则以下表达式中能实现将y中数值保留小数点后2位,第3位四舍五入的表达 式是( ). D A:y=(y*100+0.5)/100.0 B:y=(y/100+0.5)*100.0 C:y=y*100+0.5/100.0 D:x=y*100+0.5,y=x/100.0
72.若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是().B A:2 B:3 C:4 D:无确定值 73.已知结构类型定义和变量声明如下: struct sk
{int a;float b;}data[2],*p;
若有p=data,则以下对data[0]中成员a的引用中错误的是( ). A A:data[0]->a B:data->a C:p->a D:(*p).a
74.下列格式符中,可以用于以8进制形式输出整数的是( ). C A:%d B:? C:%o D: 75.语句while(!E);中的表达式!E等价于().A A:E==0 B:E!=1 C:E!=0 D:E==1 76.对二维数组的正确说明是( ). B A:int a[][] = {1,2,3,4,5,6}; B:int a[][3] = {1,2,3,4,5,6};
C:int a[2][] = {1,2,3,4,5,6}; D:int a[2][3] = {1,2,3,4,5,6,7} 77.下列数据中,为字符串常量的是().B A:A B:\C:How do you do. D:$abc
78.函数调用:strcat(strcpy(str1,str2),str3)的功能是D A:将串str1复制到串str2中后再连接到串str3之后 B:将串str1连接到串str2之后再复制到串str3之后 C:将串str2连接到串str1之后再将串str1复制到串str3中 D:将串str2复制到串str1中后再将串str3连接到串str1之后 79.判断两个字符串是否相等,正确的表达方式是C A:while(s1= =s2) B:while(s1=s2)
C:while(strcmp(s1,s2)= =0) D:while(strcmp(s1,s2)=0)
80.若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5的语句为().D
7
A:printf(\C:printf(\81. C语言程序中必须有的函数是().B A:#include \C:printf D:scanf 82.以下运算符中,优先级最高的运算符是().C A:|| B:% C:! D:== 83.在下列程序段中,枚举变量c1,c2的值依次是().A enum color {red,yellow,blue=4,green,white} c1,c2; c1=yellow;c2=white; printf(\
A:1,6 B:2,5 C:1,4 D:2,6
84.int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[5];p[-3]的值是().B A:2 B:3 C:4 D:不一定 85.已知有如下的结构类型定义和变量声明: struct student { int num; char name[10];
}stu={1,\则下列语句中错误的是( ). C A:printf(\C:printf(\86.int a=3,b=2,c=1; if(a>b>c)a=b; else a=c; 则a的值为().C A:3 B:2 C:1 D:0 87.已定义以下函数 fun(char *p2, char *p1)
{ while((*p2=*p1)!='\\0'){ p1++;p2++; } }
函数的功能是( ) A A:将p1所指字符串复制到p2所指内存空间 B:将p1所指字符串的地址赋给指针p2
C:对p1和p2两个指针所指字符串进行比较 D:检查p1和p2两个指针所指字符串中是否有'\\0' 88.enum a {sum=9,mon=-1,tue};定义了().C A:枚举变量 B:3个标识符 C:枚举数据类型 D:整数9和-1 89.变量的指针,其含义是指该变量的().B A:值 B:地址 C:名 D:一个标志
90.已知有语句\
如果需要将变量x的值以文本形式保存到一个磁盘文件out.dat中,则以下函数调用形式中,正确的是( ). B A:fprintf(\B:fprintf(fp,\
C:fprintf(\
91.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是().B A:c=*p1+*p2; B:p2=c;
8
C:p1=p2; D:c=*p1*(*p2);
92.若变量已正确定义并赋值,下面符合C语言语法的表达式是().B A:a:=b+1 B:a=b=c+2 C:int 18.5%3 D:a=a+7=c+b
93.C语言规定,在一个源程序中,main函数的位置().C A:必须在最开始 B:必须在系统调用的库函数的后面 C:可以任意 D:必须在最后 94. int a=1,b=2,c=3;
if(a>c)b=a;a=c;c=b;则c的值为().B A:1 B:2 C:3 D:不一定
95.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为______. C A:0 B:1 C:2 D:3
96.下面正确的赋值语句是(设char a[5],*p=a;)(). A A:p=\C:*p=\97.C语言源程序的基本单位是().B A:过程 B:函数 C:子程序 D:标识符
98.在C语言中,为了结束由while语句构成的循环,while后一对圆括号中表达式的值应该为().A A:0 B:1 C:True D:非0 99.相同结构体类型的变量之间,可以().B A:相加 B:赋值 C:比较大小 D:地址相同
三、程序填空
1.功能:删除字符串中的指定字符,字符串和要删除的字符均由键盘输入。 #include
char str[80],ch; int i,k=0;
/***********SPACE***********/ gets(【?】); str 或&str[0] ch=getchar();
/***********SPACE***********/ for(i=0;【?】;i++)
str[i]!='\\0'=========或=========str[i]!=NULL=========或=========str[i]!=0=========或=========str[i] 或*(str+i)!=’\\0’ 或*(str+i)!=NULL 或*(str+i)!=0 或*(str+i) if(str[i]!=ch) {
/***********SPACE***********/ 【?】;
str[k]=str[i]========或========*(str+k)=*(str+i)========或========str[k]=*(str+i)========或========*(str+k)=str[i] k++; }
/***********SPACE***********/ 【?】;
9
str[k]='\\0'=========或=========*(str+k)='\\0'=========或=========str[k]=NULL=========或=========str[k]=0=========或=========*(str+k)=0=========或=========*(str+k)=NULL puts(str); }
2.功能:对任一整数N(N≠0),它都可以分解成1(或-1)和一些质数(素数)因子的形式。 例如:当N=150时,可分解成1×2×3×5×5;当N=-150时,可分解为-1×2×3×5×5。 下边程序能实现这种分解过程。当N=150,输出以下分解结果:N= 1* 2* 3* 5* 5 #include
int n,i,r; scanf(\ if (n==0) {
printf (\ exit(0); }
/***********SPACE***********/ else if (【?】) n>0 printf(\ else {
printf(\ n=-n; }
/***********SPACE***********/ for(【?】;i<=n;i++) i=2 {
/***********SPACE***********/ 【?】 ; r=n%i while(r==0) {
printf(\
/***********SPACE***********/
【?】 ; n=n/i=========或=========n/=i r=n%i; } }
printf(\}
3.功能:将字母转换成密码,转换规则是将当前字母变成其后的第四个字母,但W变成A、X变成B、Y变成C、Z变成D。小写字母的转换规则同样。 #include
10
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2011上C语言考试复习资料(2)在线全文阅读。
相关推荐: