Printf(“%s”,p);
A、abcdccB、cbabaC、cbabaaD、cba
35、若定义;
Structstudent
{intnum;
Intage;
};
Structstudents[3]={{301,18},{302,21},{303,19}};
Structstudent*p=s;
则表达式的值为21的是(D)。
A、(p++)->ageB、(*++p).ageC、(*P++).ageD、*(++P)->age
36、若定:
intm=12,n=10,k;语句k=m&n;执行后k的值为(D)。
A、14B、6C、2D、8
39、语句(D)符合C语言语法。
A、inta=b=c=25B、inta=25,b=25+(c=25)C、inta=25,b=c=a;D、inta,b=25,c;
42、若定义:
charc;inta;floatx;doubley;则表达式c*a+x-y值的数据类型(B)
A、floatB、doubleC、charD、int
45、下列程序段执行后p的值是(C)。
Inta[3][3]={3,2,1,3,2,1,3,2,1};
For(i=0;i<3;i++)
For(j=i+1;j<3;j++)
P*=a[i][j];
A、108B、12C、2D、18
46、下列程序段的运行结果是(B)。
Charstr[80];
Strcpy(str,”university”);
Printf(“%d”,strlen(str));
A、8B、10C、117D、9
47、下列叙述正确的是(A)。
A、#define是宏定义命令B、程序中使用带参数的宏时,参数类型要与宏定义时一致
C、宏名只能包含大写字母和数字字符D、编译预处理命令行必须以分号结束
48、若有下列程序段,则叙述正确的是(D)。
Chara[]=“fujian“;
Char*p;
P=a;
A、数组a的长度和p所指向的字符串长度相等
B、数组a中的内容和指针变量p中的内容相等
C、a和p完全相同D、*p与a[0]相等
49、下列程序段的执行结果是(B)。
Typedfunion
{intage;
charname[10];
floatweight;
}class;
Structanimal
{intcat;
Classdog;
doubleani;
}zoon;
Classone;
Printf(“%d”,sizeof(structanimal)+sizeof(Class));
A、20B、30C、22D、10
50、若定义:
intI;
enumcolors{red,green,blueblack};
Inta[3];
(C)是对以下正确语句的正确判断。
A[red]=black;/*语句1*/
I=green+blue;/*语句2*/
Red=1;/*语句3*/
A、语句1正确,语句2和语句3错误B、语句2和语句3正确,语句1错误
C、语句1和语句3正确,语句2错误D、语句1和语句2正确,语句3错误
51、下列程序段的运行结果是(A)。
#include
Main()
{File*fp;
Inta=3,b=5,c=8,k,n;
Fp=fopen(“test.dat”,”w”);
Fprintf(fp,”%d\n”,a);
Fprintf(fp,”%d%d\n”,b,c);
Fclose(fp);
Fp=fopen(“test.dat“,“r“);
Fscanf(fp,”%d*%d*%d”,&k,&n);
Printf(%d%d\n“,k,n);
Fclose(fp);
A、35B、53C、83D、38
55、若已定义:
charc=’M’;则正确的赋值表达式是(A)。
A、c=\0x2mB、c=c%3C、c=c+029D、c%=2.6
56、下列程序段的运行结果是(A)。
Voidmain()
{intx,y,z;
X=y=1 ;z=2 ;
If( !
x)
++z ;
Elseif( !
(x-y))
Z=3+z ;
Elseif(y)
Z++;
Else
Z+=13;
Printf(“%d\n”,z);
A、5B、15C、8D、3
57、下列程序段运行后变量m的值为(A)。
Inti,j,m=0;
For(i=1;i<=2;i++)
For(j=1;j<=3;j+=2)
M=m+i+j;
A、14B、10C、12D、13
58、若定义二维数组a[3][3],设a[0][0]在数组中的位置为1,则a[2][1]在数组中位置应是(D)。
A、6B、9C、7D、8
59、若已定义:
Charstr1[20]={“university”},str2[20];
则(B)语句是正确的。
A、str2=str1B、printf(“%c”,str1);
C、if(str1+20==str2)printf(“###\n”);
D、scanf(“%s”,str2[]);
60、下列程序的运行结果是()。
#include
Intfun(inta[]4[4])
{intI;
For(i=0;i<4;i++)
Printf(“%2d”,a[i][1]);
Printf(“\n”);
}
Main()
{inta[4][4]={1,2,2,3,1,0,0,0,2,1,0,0,0,1,9,8};
Fun(a);
}
答案:
2011
61、下列叙述错误的是(C)。
A、宏名可以用小写字母表示B、编译预处理命令行都必须以#号开始
C、宏定义只能用大写字母表示
D、使用预处理命令“#include<文件名>”时,编译系统只在指定的系统目录下查找该文件
62、下列程序的运行结果是(A)。
#include
Voidmain()
{char*p=”Chinese”,*q=p+4;
Printf(“%c\n”,q[-1]);
}
A、nB、sC、eD、i
63、下列程序段的运行结果是(B)。
#include
Voidmain()
{struct{charx1;intx2;}a[3]={‘A’,1,’B’,2,’c’,3};
Printf(“%d\n”,a[0],x1-a[1].x1/a[2].x2);
A、55B、43C、80D、40
64、若有如下类型说明,则(B)是错误的叙述。
Typedefstruct
{intno;
Char*name;
Intcj;}STU,*p;
A、STU是一个结构体类型名B、p是一个结构体类型名
C、no是结构体类型STU的成员D、p是指向结构体类型STU的指针类型名
65、若文本文件data.txt的内容为”University”(不包含引号),则下列程序段的运行结果是(B)。
File*fp;
Char*str;
If((fp=fopen(“data.txt”,”r”))!
=NULL)
fgets(str,6,fp);
Printf(“%s”,str);
A、UniveB、UniverC、UniversiytD、Univ
66、若已定义:
charc=’B’;inta=8;floatx=10.3;则表达式c%a+x的值是(D)。
[已知‘A’的ASCII码的十进制值为65]
A、18.3B、10C、12D、12.3
67、若已定义:
ints[3][4]={{1,2},{0,1},{3,4,5}};则s[2][2]的值是(B)。
A、3B、1C、5D、4
68、下列程序的运行结果是(B)。
#include
Fun(m)
{intm=3;
M=++I;
Printf(“%d”,m);
}
Main()
{intm=9,n=6;
Fun(n);
Printf(“%d”,m);
}
A、97B、79C、66D、67
69、编译预处理命令的位置可以在(C)。
A、主函数内B、print();语句中C、文件开头D、自定义函数内
70、若已定义:
int*p1,*p2;则(B)是无效的指针运算。
A、P1-p2B、p1+p2C、p1p2
71、当文件正常关闭时,fclose()函数的返回值是(D)。
A、-1B、一个非0值C、1D、0
72、结构化程序设计三种基本结构中,不包含(C)。
A、循环结构B、顺序结构C、嵌套结构D、选择结构
73、下列选项中,均为合法整型常量的是(C)。
A、120B、170C、-190D、0x2h
-012-01801321
0x120x181e3025
74、若定义:
inta,b,c;则逗号表达式a=10,b=23,c=a+b的值为(D)。
A、23B、66C、10D、33
75、putchar()函数的功能是向终端输出(A)。
A、单个字符B、字符串C、一串数字D、一个实型变量的值
76、能对二维数组a进行正确的初始化的语句是(C)。
A、inta[2][4]={{1,2},{3,4},{5,6}}B、inta[][3]={{1,2},{},{3,5,6}}
C、inta[][3]={{1,2},{3,4,5}}D、inta[2][]={{1,2},,{3,0,5}}
77、下列程序段执行后s的值是(B)。
Intk,s=0;
Inta[3][3]={11,12,13,14,15,16,17,18,19};
For(k=0;k<2;k++)
S+=a[k][k+1];
A、45B、28C、76D、31
78、下列程序的运行结果是(A)。
#include
Intfun(inta,intb)
{return(a*b);
}
Main()
{intx=15,y=2,z;
Z=fun(x,y);
Printf(“%d*%d=%d\n”,x,y,z);
}
A、15*2=30B、x*y=30C、0D、30
79、若有定义
Structstudent
{intnum;
Charsex;
Intage;
}stu1;
下列叙述错误的是( B )。
A、Su1是用户定义的结构体类型变量名 B、structstudent是结构体类型名
C、num,sex,age都是结构体变量stu1的成员D、student是结构体类型名
80、若定义;
enumt1{a1,a2=10,a3,a4=13};
则枚举常量a2和a3的值分别是(C)。
A、1和2B、2和3C、10和11D、10和2
81、若定义:
Typedefunion
{charname[10];
Intage;
}ustu,*uyour;
下列叙述错误的是(B)。
A、ustu是一个共用体类型名B、uyour是一个共用体类型名
C、age是共用体类型ustu的成员D、uyour是指向共用体类型ustu的指针类型名
82、若已定义:
inta=7,b=6;floatm=1;则正确的表达式是(C)。
A、(a+b)++B、m=float(a)/bC、a=(b!
=5)D、(a+b)*=m
83、若定义:
inti=1,j=3;则表达式(++i)+(j--)的值为(B)。
A、3B、5C、2D、4
84、若定义:
inta=1,b=2,c=3;则表达式b>=a&&(a+b)<=c的值为(C)。
A、3B、2C、1D、0
85、为避免在嵌套的条件语句if….else中产生二义性,C语言规定,else子句总是与(B)。
配对。
A、缩进位置相同的ifB、其之前最近的未配置ifC、其之后最近的ifD、同一行上的if
86、下列叙述中错误的是(D)。
A、在程序中凡是以#号开始的语句都是预处理命令行B、预处理命令行都必须以#号开始
C、下列是正确的宏定义:
defineR45D、C程序在执行过程对预处理命令行进行处理
87、若定义:
intx=8,y=7;语句printf(“%d+%d=%d\n”,x,y,x+y);执行后的输出结果是(D)。
A、7+8=15B、8*7C、15D、8+7=15
88、下列程序的运行结果是(B)。
Main()
{staticchara[]=”bacdefg”,b[]=”adcbehg”;
Char*p=a,*q=b;
IntI;
For(i=0;i<=6;i++)
If(*(p+i)==*(q+i))
Printf(“%c”,*(q+i));}
A、fdbB、cegC、gecad、aceg
90、下列程序段运行后变量s的值为(C).
Inta[]={1,2,3,4,5,6,7};
IntI,s=1,*p;
P=&a[2];
For(i=0;i<4;i++)
S*=*(p+i);
A、210B、60C、360D、120
93、下列程序段的运行结果是(D)。
Chara[]=”student”;
Charb[]=”work”;
Strcpy(a,b);
Printf(“%s%c”,a,a[5]);
A、studnB、studC、workD、workn
94、对于下列程序段,叙述正确的是(A)。
Inta=2;
Do
{a+=2;
}while(!
(a!
=0));
A、循环执行1次B、有语法错误C、循环执行2次D、是无限循环
95、若已定义:
Typedefstructstu
{intnum;
Charname[20];
}STU;
则正确的语句是(D)。
A、studd[2]={{1,”chen”},{2,”li”}B、structstubb[2]={{1,chen},{2,li}}
C、StUaa[2]={{1,’chen’},{2,’li’}}D、STUcc[2]={{1,”chen”},{2,”li”}}
二、填空题
#include"stdio.h"
main()
{doublepi=0;
longi,sign=1;
for(i=1;i<=10001;i+=2)
{pi+=1.0*sign/i;
sign=/**//**/;
}
pi*=/**//**/;
printf("%f\n",pi);
}
答案:
#include"stdio.h"
main()
{doublepi=0;
longi,sign=1;
for(i=1;i<=10001;i+=2)
{pi+=1.0*sign/i;
sign=/**/sign*(-1)/**/;
}
pi*=/**/4/**/;
printf("%f\n",pi);
}
#include
#include
voidmain()
{
intx;
/**//**/
printf("Inputaninteger:
");
scanf("%d",&x);
f=/**//**/;
printf("F(x)=%f\n",f);
getch();
}
答案:
#include
#include
voidmain()
{
intx;
/**/floatf;/**/
printf("Inputaninteger:
");
scanf("%d",&x);
f=/**/(abs(x)-2)/(pow(x,2)+1);/**/;
printf("F(x)=%f\n",f);
getch();
}
#include
#include
intcount(/**//**/)
{
intn=0;
char*p=/**//**/;
while(*p)
{if(*p=='a')n++;
/**//**/;
}
returnn;
}
voidmain()
{
chars[255];
printf("Enterastring:
");
gets(s);
printf("Countofais:
%d\n",count(s));
getch();
}
答案:
#include
#include
intcount(/**/chara[]/**/)
{
intn=0;
char*p=/**/a/**/;
while(*p)
{if(*p=='a')n++;
/**/p++/**/;
}
returnn;
}
voidm