单选题
[1]、C语言中运算对象必须是整型的运算符是()。
【答案】C
【分数】1分
【选项】
A、/
B、++
C、%
D、!=
[2]、假设所有变量均为整型,则执行运算x=(a=2,b=5,b++,a+b)后, x的值是()。
【答案】B
【分数】1分
【选项】
A、7
B、8
C、6
D、2
[3]、在下列字符序列中,属于C语言合法标识符的是()。
【答案】B
【分数】1分
【选项】
A、P12.a
B、stud_100
C、$water.1
D、88sum
[4]、在下列语句选项中,只有一个在功能上与其他三个语句不等价(其中s1和s2表示某个C语句),这个不等价的语句是()。
【答案】D
【选项】
A、if (a) s1; else s2;
B、if (!a) s2; else s1;
C、if (a!=0) s1; else s2;
D、if (a==0) s1; else s2;
[5]、若二维数组定义为a[m][n],则在a[i][j]之前的元素个数为()。【答案】B
【分数】1分
【选项】
A、j*m+i
B、i*m+j
C、i*m+j-1
D、j*m+i-1
[6]、以下程序的运行结果是()。
void fun(int *n)
{
static int m=2;
*n*=m-1; m+=2;
}
void main()
{
static int m=1;
int i;
for(i=1;i<4;i++)
fun(&m);
printf("%d\n",m);
}
【分数】1分
【选项】
A、8
B、10
C、11
D、15
[7]、设有定义:#define STR "12345";,则以下叙述正确的是()。【答案】C
【分数】1分
【选项】
A、宏名STR代替的是数值常量12345
B、宏定义以分号结束,编译时会产生错误信息
C、宏名STR代替的是字符串"12345"
D、宏名STR代替的是字符串常量"12345"
[8]、下列叙述不正确的是()。
【答案】B
【分数】1分
【选项】
A、用typedef可以定义各种类型名,但不能用来定义变量
B、typedef和#define都是在预编译时处理的
C、用typedef只是将已存在的类型用一个新的标识符来代表
D、使用typedef有利于程序的通用和移植
[9]、若变量定义时未初始化,则其值不确定的是()。
【答案】C
【分数】1分
【选项】
A、静态全局变量
B、静态局部变量
C、局部变量
D、全局变量
[10]、以下程序关于sizeof()的运行结果是()。
void main()
{
char a[]="movie",b[10]="movie";
printf("%d %d\n",sizeof(a),sizeof(b));
}
【答案】C
【分数】1分
【选项】
A、5 5
B、6 6
C、6 10
D、其他输出
[11]、若要用fopen函数打开一个二进制文件,该文件要既能读也能写,当文件不存在时新建文件,则文件打开方式应是()。
【答案】C
【分数】1分
【选项】
A、"ab+"
B、"rb+"
C、"wb+"
D、"ab"
[12]、设char ch,str[4],*strp;,则下列赋值语句正确的是()。
【答案】C
【分数】1分
【选项】
A、ch="CBA";
B、str="CBA";
C、strp="CBA";
D、*strp="CBA";
[13]、有以下函数:char *fun(char *p){return p;},该函数的返回值为()。
【答案】B
【分数】1分
【选项】
A、不确定值
B、参数p中存放的地址值
C、一个临时存储单元的地址值
D、形参p自身的地址值
[14]、若有定义:const int i=10,j=20;int* const pi=(int*)&i;,则下列操作正确的为()。【答案】A
【分数】1分
【选项】
A、*pi=0;
B、pi=&j;
C、i=10;pi=&j;
D、j=*pi;
[15]、有如下定义:
struct s1
{
char a[3];
int num;
}t={’a’,’b’,’x’,4},*p;
p=&t;
则下列语句输出结果为x的是()。
【答案】A
【分数】1分
【选项】
A、printf("%c\n",p->t.a[2]);
B、printf("%c\n",(*p).a[2]);
C、printf("%c\n",p->a[3]);
D、printf("%c\n",(*p).t.a[2]);
[16]、以下程序将输出的字符是()。
#include "stdio.h"
main()
{
char c;
char (*p)[3];
char s[2][3] ={’a’,’b’,’c’,’d’,’e’,’f’}; p=&s[0];
c=*(p[1]+1);
printf("%c",c);
}
【答案】C
【分数】1分
【选项】
A、b
B、d
C、e
D、f
[17]、以下关于枚举的程序,其运行结果是()。
#include "stdio.h"
main()
{
enum weekday
{ sun,mon,tue=5,wed,thu,fri,sat } a,b,c,d;
a=sun;
b=mon;
c=tue;
d=wed;
printf("%d %d %d %d\n",a,b,c,d);
}
【答案】C
【分数】1分
【选项】
A、 0 0 5 0
B、 1 2 5 4
C、 0 1 5 6
D、 0 1 5 3
[18]、设有程序段 char k;while (k>0) k++; printf("%d\n",k);则程序输出结果为()。【答案】C
【分数】1分
【选项】
A、-127
B、256
C、-128
D、128
[19]、函数调用语句:fseek(fp,-20L,2);的含义是()。
【答案】C
【分数】1分
【选项】
A、将文件位置指针移到距离文件头20个字节处
B、将文件位置指针从当前位置向后移动20个字节
C、将文件位置指针从文件末尾处后退20个字节
D、将文件位置指针移到距离当前位置20个字节处
[20]、以下程序的输出结果为()。
int a=2;
int f(int *a)
{
return(*a)++;
}
void main()
{
int s=0;
{int a=5;
s+=f(&a);
}
s+=f(&a);
printf("%d %d\n",a,s);
}
【答案】C
【分数】1分
【选项】
A、2 7
B、2 10
C、3 7
D、3 11
[21]、以下程序输出的字符序列是()。
#include "stdio.h"
main(){
char a[]="language",*p;
p=a;
while(*p!=’u’){ printf("%c",*p-’u’+’U’);p++;} }
【答案】C
【分数】1分
【选项】
A、LANGUAGE
B、language
C、LANG
D、LANGuage
[22]、以下程序的输出结果是()。
#include
int main()
{
char str[100]="ABCDEFG", *p=str;
int i;
for(i = 0; *p != ’\0’; p++,i++);
printf("%d\n",i);
return 0;
}
【答案】A
【分数】1分
【选项】
A、7
B、8
C、99
D、100
[23]、字符串"a\x44\\\nbcd\102a"的长度是()。
【答案】C
【分数】1分
【选项】
A、12
B、17
C、9
D、11
[24]、以下程序的输出结果是()。
main()
{ int n;
(n=6*4,n+6),n*2;
printf("n=%d\n",n);
}
【答案】B
【分数】1分
【选项】
A、30
B、24
C、60
D、48
[25]、以下程序的输出结果是()。
main()
{ int w=4,x=3,y=2,z=1;
if(x>y&&!(z==w)) printf("%d\n",(w
}
【答案】A
【分数】1分
【选项】
A、1
B、2
C、3
D、4
[26]、以下程序的输出结果是()。
main()
{int a=1,b=0;
switch(a)
{case 1: switch (b)
{case 0:printf("**0**");break;
case 1:printf("**1**");break;
}
case 2:printf("**2**");break;
}
}
【答案】B
【分数】1分
【选项】
A、**0**
B、**0****2**
C、**0****1****2**
D、有语法错误
[27]、以下是求两个正整数的最大公约数的函数fun(),下划线处应填入的正确语句为()。 int fun(m,n)
int m,n;
{int r;
if(m if(n= =0) return(m); do{ r=m%n; if (r!=0){ m=n;n=r;} } while (______); return(n); } 【答案】A 【分数】1分 【选项】 A、r!=0 B、r==0 C、n!=0 D、n==0 [28]、以下程序的输出结果是()。main() {int a=0,j; for(j=0;j<4;j++) {switch(j) {case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; } } printf("%d\n",a); } 【答案】D 【分数】1分 【选项】 A、20 B、13 C、10 D、36 [29]、以下程序功能为输入1个正整数n, 计算并输出s的前n项的和:s=1/2-2/3+3/4-4/5+ ……(-1) n/(n+1),下划线处应填入的正确语句为()。 #include "stdio.h" void main() { int k, flag=1, n; float s=0; scanf("%d", &n); for (k=1; k<=n; k++){ s=s+______; flag=-flag; } printf("sum=%f\n", s); } 【答案】A 【分数】1分 【选项】 A、1.0*k/(k+1)* flag B、flag*n/(n+1) C、-k/(k+1) D、1.0*k/(k+1) [30]、以下程序的输出结果是()。 { int i,j,x=0; for (i=0;i<2;i++) { x++; for(j=0;j<3;j++) { if (j%2) continue; x++;} x++; } printf("x=%d\n",x); } 【答案】B 【分数】1分 【选项】 A、x=4 B、x=8 C、x=6 D、x=12 [31]、以下程序的输出结果是()。 main() { char ch[2][5]={ "6937","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i++)p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]> ’\0’;j+=2) s=10*s+p[i][j]- ’0’; printf("%d\n",s); } 【答案】C 【分数】1分 【选项】 B、63825 C、6385 D、693825 [32]、下列程序片段的输出结果是()。 printf("%d\n",strlen("ATS\n0l2\2\\")); 【答案】C 【分数】1分 【选项】 A、l1 B、10 C、9 D、8 [33]、在C程序中有如下语句:char *func(int x,int y); 它是()。【答案】C 【分数】1分 【选项】 A、对函数func的定义 B、对函数func的调用 C、对函数func的原型说明 D、不合法的 [34]、下列程序运行后的输出结果是()。 fun(int a, int b) { if(a>b) return(a); else return(b); } main() { int x=3, y=8, z=6, r; r=fun(fun(x,y), 2*z); printf("%d\n", r); } 【答案】D 【分数】1分 【选项】 A、3 B、6 C、8 D、12 [35]、有如下程序,该程序的输出结果是()。 long f(int n) { if(n>2) return(f(n-2)+f(n-3)); else if(n==2) return(2); else return(1); } main() { printf("%d\n",f(5)); } 【答案】C 【分数】1分 【选项】 A、2 B、3 C、4 D、5 [36]、在C语言中,函数的隐含存储类别是()。【答案】C 【分数】1分 【选项】 A、auto B、static C、extern D、无存储类别 [37]、以下程序的运行结果是()。 #include "stdio.h" main() { int a[]={1,2,3,4,5,6,7,8,9,10,11,12}; int *p=a+5,*q=NULL; q=p+5; printf("%d %d\n",*p,*q); } 【答案】B 【分数】1分 【选项】 A、运行后报错 B、6 11 C、6 12 D、5 5 [38]、以下选项中,能定义s为合法的结构体变量的是()。【答案】B 【分数】1分 【选项】 A、typedef struct abc { double a; char b[10]; }s; B、struct abc { double a; char b[10]; }s; C、struct ABC { double a; char b[10]; } ABC s; D、typedef ABC { double a; char b[10]; } ABC s; [39]、以下程序运行后的输出结果是()。 #include struct NODE { int num; struct NODE *next; }; main() { struct NODE *p,*q,*r; p=(struct NODE*)malloc(sizeof(struct NODE)); q=(struct NODE*)malloc(sizeof(struct NODE)); r=(struct NODE*)malloc(sizeof(struct NODE)); p->num=10; q->num=20; r->num=30; p->next=q; q->next=r; printf("%d\n ",p->num+q->next->num); } 【答案】D 【分数】1分 【选项】 A、10 B、20 C、30 D、40 [40]、下列程序的输出结果是()。 struct student { int a, b, c; }; main() { struct student stu[2]={{2,3,4},{5,6,7}}; int t; t=stu[0].a+stu[1].b%stu[0].c; printf("%d \n",t); } 【答案】C 【分数】1分 【选项】 A、0 B、1 C、4 D、5 [41]、若a是整型变量,表达式~(a^~a)等价于()。【答案】C 【分数】1分 【选项】 A、~a B、1 C、0 D、2 [42]、若以下程序所生成的可执行文件名为filel.exe ,当输入命令行:FILE1 CHINA BEIJING SHANGHAI ,执行该程序时,程序的输出结果是()。 main(int argc,char * argv []) { while(argc-->1) {++argv;printf("%s ",*argv);} } 【答案】A 【分数】1分 【选项】 A、CHINA BEIJING SHANGHAI B、FILE1 CHINA BEIJING C、C B S D、F C B [43]、下列选项中属于不正确的赋值语句的是()。 【答案】D 【分数】1分 【选项】 A、t--; B、k=i==j; C、t1=t2=t3=3; D、t1=1,t2=2; [44]、若有定义:int a,b;char x,y;并有以下输入数据: 12 13 AaBb(回车) 则能给a赋整数12,给b赋整数13,给x赋字符a,给y赋字符b的正确程序段是()。 【答案】D 【分数】1分 【选项】 A、scanf(“%d”,&a);