发布时间 : 星期一 文章福建省2010年12月真题C语言(含答案)更新完毕开始阅读
C.strcpy(str2,strupr(str1)); D.strcat(str2,strupr(str1)); 1226、下列程序段的运行结果是( )。
char str[]={ 'Y','o','u','\\0','a','r','e','\\0','w','e','l','c','o','m','e'}; puts(str);
A.welcome B.You are C.You are welcome D.You
1227、若已定义:char str[20]={\则函数strlen(str)的值是( )。 A.4 B.5 C.6 D.12
1228、下列程序段的运行结果是( )。 char s1[7]=\strcpy(s1,s2);
printf(\ A.abc B.123 C.abc e D.123 e
1324、下列程序段中函数调用语句tnk((a,b),m+n); 的实参值是( )。 int a=1,b=2,m=3,n=4; tnk((a,b),m+n);
A.2和7 B.3和7 C.1和7 D.2和3
1325、对于无返回值的自定义函数,在定义时最好使用( )类型标识符。 A.void B.float C.int D.long 1326、下列叙述错误的是( )。
A.定义函数时可以有参数,也可以没有参数
B.形参是变量名时,实参也只能是变量名,不可以是表达式 C.函数的形参在函数被调用前是没有确定值的
D.函数的形参和对应的实参个数应相等,类型应相同或赋值兼容 1327、下列叙述正确的是( )。
A.函数的定义允许嵌套,但函数的调用不允许嵌套 B.函数的定义不允许嵌套,但函数的调用允许嵌套 C.函数的定义和调用都不允许嵌套 D.函数的定义和调用都允许嵌套 1328、下列程序的运行结果是( )。 #include
{int a=6,b=1,c=3;
printf(\}
A.10 B.5 C.4 D.9
1424、下列程序的运行结果是( )。 #define K 5 void main( ) { int a=3,b=4;
printf(\}
A.20 B.5 C.35 D.15
1425、下列叙述错误的是( )。 A.预处理命令行都必须以#号开始
B.#define PER 1.5的作用是用标识符PER代表1.5
C.C语言源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率 D.宏定义可出现在源程序中任意合适的位置,且必须在行末加分号 1426、下列程序的运行结果是( )。 #define M 5 #define N M+1 #define NN N*N-M void main( )
{ printf(\ A.108 B.21 C.16 D.103 1427、下列叙述正确的是( )。
A.宏定义不占用程序运行时间,但与程序中的语句一样需要编译 B.为提高程序运行速度可在源程序中加入一些宏定义 C.一个C语言源程序只能有一条预处理命令 D.宏定义中的宏名必须用大写字母表示 1428、下列程序中定义的二维数组a的( )。 #define M 3 #define N 4 void main( )
{ int a[M][N]; ?? }
A.第一维为3,第二维为4 B.第一维为4,第二维为3 C.第一维和第二维都为3 D.第一维和第二维都为4
1524、若已定义:int a=5,*p1=&a; float f=6.5,*p2=&f; 则下列正确的赋值语句是( )。 A.p2=p1; B.p1=&f; C.f=*p1+*p2; D.p2=&a;
1525、若已定义:int a,b=5,*p=&a; 与语句a=b;等价的是( )。 A.a=*p; B.*p=*&b; C.a=&b; D.a=**p; 1526、变量的指针,其值是该变量的( )。 A.值 B.标识符 C.一个标志 D.内存单元地址
1527、若已定义:int a[5]={1,2,3,4,5},*pa=a; 下列叙述错误的是( )。 A.pa与a的值相等 B.a++与pa++的作用相同 C.a[2]与pa[2]的值相等 D.*(pa+2)与a[2]的值相同
1528、若已定义:int a[5]={1,2,3,4,5},*p=a; 且p值未发生变化,下列不能表示a[1]地址的是( )。
A.p+1 B.a++ C.a+1 D.++p 1624、下列程序的运行结果是( )。 void main( )
{int a[5]={2,3,5,11,4},b[5]={12,1,6,9,8}; int *pa=a,*pb=b; int i;
for(i=0;i<5;i++)
if(*(pa+i)<*(pb+i)) printf(\}
A.5 B.2 5 4 C.3 11 D.2 1625、下列程序的运行结果是( )。 void main( )
{ char str[]=\ int i; while(*p)
printf(\}
A.cd B.abcd C.abc D.bcd 1626、下列程序的运行结果是( )。 void main( )
{ int a=11,b=22,temp; int *pa=&a,*pb=&b;
temp=*pa; *pa=*pb; *pb=temp; printf(\}
A.11,11 B.22,22 C.22,11 D.11,22 1627、下列程序的运行结果是( )。 void main( )
{int a[]={1,2,3,4,5,7},*p; p=a; *(p+3)+=2;
printf(\}
A.1,5 B.1,3 C.1,4 D.1,6 1628、下列程序的运行结果是( )。 void fn(int *p,int n) {int j;
for(j=0;j void main( ) {int a[5]={1,2,3,4,5}; int i; fn(a,5); for(i=0;i<5;i++) printf(\} A.1 2 3 4 5 B.11 2 3 4 5 C.1 2 3 4 15 D.11 12 13 14 15 1724、若已定义: struct student{int num; char name[20]; }stu1,stu2; 下列语句不正确的是( )。 A.stu1=stu2; B.stu1.num=stu2.num; C.strcpy(stu1.name,stu2.name); D.stu1.name=\ 1725、若已定义: struct teacher{int num; char name[20]; }t1, *p=&t1; 下列对结构变量t1中成员num合法的引用是( )。 A.teacher.num B.*p.num C.p->num D.t1->num 1726、下列程序段的运行结果是( )。 union data { int a; char b; }data1; data1.b='A'; data1.a++; printf(\ A.B B.A C.65 D.66 1727、若已定义:struct student{ int num; float score;}stu[4];以下错误的语句是( )。 A.stu[0]=stu[1]; B.printf(\C.stu[0]->num=101; D.*(stu)=*(stu+1); 1728、下列对结构类型变量stu1的定义和初始化正确的是( )。 A.struct student {int num; float score; }; struct student stu1; stu1->num=1001; stu1->score=85.0; B.struct {int num; float score; }stu1={1001, 85.0}; C.struct student {int num; float score; }stu1; stu1={1001,85.0}; D.struct student {int num; float score; }; struct student stu1={1001,85.0}; 1824、若已定义:int a[5]={1,2,3,4,5}; int *p=&a[3]; 则下列值为3的是( )。 A.a+2 B.*p C.p-a D.p-a[0] 1825、若已定义:int a[3]={3,6,9},*p=a; 则对数组元素a[1]错误引用的是( )。 A.p[1] B.*p+1 C.*(&a[1]) D.*(a+1) 1826、若已定义:int a[5],*p=a; 则不能正确表示a[1]地址的是( )。 A.p+1 B.++p C.a+1 D.++a 1827、以下程序段的输出结果是( )。 int a[5]={1,3,5,7,9},*p; p=&a[2]; printf(\printf(\ A.7 3 B.5 3 C.7 4 D.9 4 1828、若已定义: struct student{ int num; float score; }stu[2]={{101,85.5},{102,90.0}},*p=stu; 下列对结构体数组引用错误的是( )。 A.p->num B.(*p).num C.stu[0].num D.p[1]->num 1924、若已定义:int x=7,y=5; 则表达式(x^y)<<2的值为( )。 0111^0101=> 0010 A.1 B.8 C.0 D.20 1925、以下程序段运行后,c的二进制值是( )。 int a=2,b=3,c=10;c>>=a|b; A.00000001 B.00000010 C.00101000 D.01010000 1926、以下语句正确的是( )。 A.typedef INTEGER int; B.typedef INTEGER=int; C.typedef int INTEGER; D.typedef INTEGER: int; 1927、下列对枚举类型的定义正确的是( )。 A.enum a={A,B,C}; B.enum a{x=-2,y=1,z=3}; C.enum a{\ 1928、若有以下定义:typedef enum week{mon,tue,wed,thu,fri,sat,sun}week_day; 则下列语句正确的是( )。 A.week d; B.week_day d; C.enum week d; D.typedef enum week d; 2024、若已定义:FILE *fp; 则能向fp所指向的文件写入hello这5个字符的语句是( )。 A.fputs(\C.fwrite(\2025、利用fseek函数可以实现以下哪个功能( )。 A.在指定的文件夹中查找文件 B.移动文件的读写位置指针 C.改变文件的读取顺序 D.得到文件位置指针的当前位置 2026、以下程序运行后,文件file1.txt的内容是( )。 #include fp = fopen(\ if(fp==NULL) return 0; else { fputs(\ rewind(fp); fputs(\ fclose(fp); return 1; } } A.one B.two C.onetwo D.twoone 2027、若已定义:FILE *fp;若要打开d盘的temp文件夹下的file1.txt文件,该文件既能读也能写,则正确的语句是( )。 A.fp=fopen(\\B.fp=fopen(\\C.fp=fopen(\\\2028、文件类型FILE是( )。 A.一种函数类型 B.一种数组类型 C.一种结构类型 D.一种指针类型 0124 ABCCB 0224 CADAC 0324 BDBBD 0424 DBCDC 0526 BABDC 0626 BDCAB 0726 ABCDB 0826 DBCBA 0926 CBBBA 1026 BBBCA 1126 AACCB 1226 DADAA 1326 BBACD 1426 CAACB 1526 DBBBB 1626 CDDDC 1726 AC 1728(BD) 1824 CBDAD 1924 BACB(BCD) 2024 ABBDC