a==10||a==11||a==12||a==13
a>9&&a<14
!(a<=9)&&!(a>=14)
~A
以下程序运行的结果是()。
*#include
*main()
*{int a=3,b=4,c=8,d=4,m=1,n=3;
*printf("%d\n",(m=a>b)&&(n=c>d))
*}
1
2
3
~A
能正确表示“当x的取值范围在[1,10]和[100,110]范围内为真,否则为假”的表达式是()。(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)
(x>=1)||(x<=10)||(x>=100)||(x<=110)
(x>=1)&&(x<=10)||(x>=100)&&(x<=110)
(x>=1)||(x<=10)&&(x>=100)||(x<=110)
~C
若有定义:int a=4,b=5;float x=3.4,y=2.1;则下面表达式的值为()。
*(float)(a+b)/2+(int)x%(int)y
5.5
55
5.500000
55.00000
~C
若a为int型变量,则执行以下语句后,a的值为()。
*a=5;a+=a-=a*a;
25
-40
40
-14
~B
若已定义x和y为整型变量,且x=7,则表达式y=2.3+x/2的值是()。
6
5
5.0
6.0
~B
有以下程序:
*main()
*{int y=1,x=2,z=3;
*printf("%d,%d\n",(++x,y++),z+2);
*}
*执行后的输出结果是()。
3,5
2,5
3,3
1,5
~D
以下程序的输出结果是()。
*main()
*{int a=1,b=2;
*printf("%d,%d\n",--a,++b);
*}
1,2
1,3
0,2
0,3
~D
C语言程序的执行是()。
从程序的主函数开始,到程序的主函数结束
从程序的主函数开始,到程序的最后一个函数结束
从程序的第一个函数开始,到程序的最后一个函数结束
从程序的第一个函数开始,到程序的主函数结束
~A
下面说法正确的是()。
一个C程序可以有多个函数
一个C语言的函数中只允许有一对花括号
C语言一个语句可以写在一行内,也可以写在多行内
在对C程序进行编译时,可以发现注释行中的拼写错误
~C
以下说法正确的是()。
C程序是以函数为基本单位的,整个程序由函数组成
C语言程序的一条语句可以写在不同的行上
C程序的注释行对程序运行不起作用,所以注释应该尽可能少写
C程序的每个语句都以分号结束
~C
以下标示符不是关键字的是()。
break
char
Switch
return
~C
若要求定义具有10个int型元素的一维数组a,则下列定义语句中错误的是()。#define N 10
*int a[N]
#define n 5
*int a[2*n]
int a[5+5]
int n=10,a[n]
~D
下设有如下程序段
*char s[20]="Beijing",*p;
*p=s;
*则执行p=s;语句后,以下叙述正确的是()。
可以用*p表示s[0]
s数组中元素的个数和p所指字符串长度相等
s和p都是指针变量
数组s中的内容和指针变量p中的内容相同
~A
下列数组定义中错误的是()。
int x[][3]={0};
int x[2][3]={{1,2},{3,4},{5,6}};
int x[][3]={{1,2,3},{4,5,6}};
int x[2][3]={1,2,3,4,5,6};
~B
有以下程序:
*main()
*{int i,t[][3]={9,8,7,6,5,4,3,2,1};
*for(i=0;i<3;i++) printf("%d",t[2-i][i]);
*}
*程序执行后的输出结果是()。
7 5 3
3 5 7
3 6 9
7 5 1
~B
若有定义语句:int a[3][6];,按内存中的存放顺序,a数组的第10元素是()。a[0][4]
a[1][3]
a[0][3]
a[1][4]
~B
以下错误的定义语句是()。
int x[][3]={{0},{1},{1,2,3}};
int x[4][3]={{1,2,3},{1,2,3},{1,2,3}};
int x[4][]={{1,2,3},{1,2,3},{1,2,3}};
int x[][3]={1,2,3,4};
~C
以下不正确的定义语句是()。
double x[5]={1.0,2.0,3.0,4.0,5.0};
int y[5]={0,1,2,3,4,5}};
char c[]={'1','2','3','4','5'};
char c2[]={'a','b','c'};
~B
若有以下定义,则正确引用数组元素的是()。
*int a[5],*p=a;
*&a[5]
*a+2
*(p+5)
~D
若有说明:int a[][3]={0,0};则不正确的叙述是()。
数组a的每个元素的初值都是0
数组a的第一维大小为1
数组a的行数为1
只有元素a[0][0]和a[0][1]初值为0,其余元素得不到初值0 ~D
下列二维数组初始化语句中,不正确的是()。
int b[][2]={1,2,3,4,5,6,7};
int b[3][5]={0,0,0};
int b[][4]={{1,2},{3,4,5},{6}};
int b[3][2]={(1,2),(3,4),(5,6)};
~D
有以下程序:
*main()
*{int aa[5][5]={{1,2,3,4},{5,6,1,8},{5,9,10,2},{1,2,5,6}};
*int s=0,i;
*for(i=0;i<4;i++)
*s+=aa[i][2];
printf("%d",s);
*}
*程序运行后的输出结果是()。
26
19
10
20
~B
*以下程序的输出结果是[<4>]。
*#include
*main()
*{
* int a[5]={2,4,6,8,10},*p;
* p=a;p++;
* printf("%d",*p);
*}
*以下程序的输出结果是[<3 5>]。
*#include
*void swap(int *a,int *b)
*{
* int *t ;
* t=a;a=b;b=t;
*}
*{
* int i=3,j=5,*p=&i,*q=&j;
* swap(p,q);printf("%d %d",*p,*q);
*}
*下面程序段的运行结果是[<68>]。
*char str[]="ABCD",*p=str;
*printf("%d\n",*(p+3));
设已有定义:float x;,则下列对指针变量p进行定义且赋初值的语句中正确的是( )。float *p=1024;
int *p=(float)x;
float p=&x;
float *p=&x;
~D
设有定义语句int (*f)(int);,则以下叙述正确的是( )。
f是基类型为int的指针变量
f是指向函数的指针变量,该函数具有一个int类型的形参
f是指向int类型一维数组的指针变量
f是函数名,该函数的返回值是其类型为int类型的地址
~B
设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是( )。*p=*q
p=q
*p=&n1;
p=*q
~A
在16位编译系统上,若有定义int a[]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是( )。
p向高地址移了一个字节
p向高地址移了一个存储单元
p向高地址移了两个字节
p与n+1等价
~A
若有定义语句:int k[2][3],*pk[3];,则下列语句中正确的是( )。
pk=k;
pk[0]=&k[1][2];
pk=k[0];
pk[1]=k;
~B
若有定义:char(*p)[6];则标识符p( )。
是一个指向字符型变量的指针
是一个指针数组名
是一个指针变量,它指向一个含有6个字符型元素的一维数组
定义不合法
下面程序段的运行结果是( )。
#include
void main()
{ char str[]="abc",*p=str;
printf("%d\n",*(p+3));
}
67
字符'C'的地址
字符'C'
~B
若有以下定义,则对a数组元素的正确引用是( )。
int a[5],*p=a;
*&a[5]
*a+1
*(p+5)
*(a+2)
~D
若变量a和b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句[]。
~~~2
*执行下列程序时,输入1234567,则输出结果是[<12 34>]。
*#include
*main()
*{ int a=1,b;
* scanf("%2d%2d",&a,&b);printf("%d%d\n",a,b);
*}
数字字符0的ASC||值为48,运行下列程序的输出结果是( )。
main()
{ char a='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);
}
3,2
50,2
2,2
2,50
~C
下列不合法的字符常量是( )。
'\018'
'\"'
'\\'
~A
下列能正确定义字符串的语句是( )。
char str[]={'\064'};
char str="kx43";
char str='';
char str[]="\0";
~D
下列合法的字符型常量是( )。
'\x13'
'\081'
'65'
"\n"
~A
已知大写字母A的ASC||码是65,小写字母a的ASC||码是97。下列不能将变量c中的大字字母转换为对应小写字母的语句是( )。
c=(c-'A')%26+'a'
c=c+32
c=c-'A'+'a'
c=('A'+C)%26-'a'
~D
已知字符'A'的ASC||码值是65,字符变量c1的值是'A',c2的值是'D'。执行语句printf("%d,%d",c1,c2-2);后,输出结果是( )。
A,B
A,68
65,66
65,68
~C
下列正确的字符串常量是( )。
"\\\"
'abc'
Olympic Games
""
~D
要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,下列正确的程序段是( )。
while((ch=getchar())!='N') printf("%c",ch);
while(ch=getchar()!='N') printf("%c",ch);
while(ch=getchar()=='N') printf("%c",ch);
while((ch=getchar())=='N') printf("%c",ch);
~A
有以下程序段( )。
char ch;int k;
ch='a';k=12;
printf("%c,%d,",ch,ch,k);
printf("k=%d\n",k);
已知字符a的ASC||十进制代码为97,则执行上述程序段后输出结果是
因变量类型与格式描述符的类型不匹配输出无定值
输出项与格式描述符个数不符,输出为零值或不定值
a,97,12k=12
a,97,k=12
~D
有定义语句:int b;char c[10];,则正确的输入语句是( )。
scanf("%d%s",&b,&c);
scanf("%d%s",&b,c);
scanf("%d%s",b,c);
scanf("%d%s",b,&c);
~B
设有定义:int a; float b;,执行scanf("%2d%f",&a,&b);语句时,若从键盘输入876543.0,a和b的值分别是( )。
876和543.000000
87和6.000000
87和543.000000
76和543.000000
~B
设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。下面的输入形式中正确的是( )(注:□代表空格字符)。
10□X□20□Y
10□X20□Y
10□X20Y
10X20□Y
~A
有下列程序段:
int j; float y;char name[50];
scanf("%2d%f%s",&j,&y,name);
当执行上述程序段,从键盘上输入55566 7777abc后,y的值为( )。
55566.0
566.0
7777.0
566777.0
~B
以下选项中不是字符常量的是( )。
'\v'
'\x2a'
'a'
"\0"
以下选项中非法的字符常量是( )。
'\\'
'\020"
'\xAA'
'0'
~B
在执行完下面的C语句段之后,则B的值是( )。char a='A';
int b;
B=((34&&56)&&(a<'b'));
1
TRUE
FALSE
~B
若变量已正确定义,以下正确的程序段是( )。while(ch=getchar()=='\N') putchar(ch);
while((ch=getchar())=='\n')putchar(ch);
while((ch=getchar())!='\N')putchar(ch);
while((ch=getchar())!='\n')putchar(ch);
~D
若变量已正确定义,下面程序段的输出结果是( )。#include
main()
{float x=1.236547;
printf("%f\n",(int)(x*1000+0.5)/(float)1000);
}
1.237000
输出格式说明与输出项不匹配,输出无定值
1.236000
1.24
~A
设已定义x为double类型变量:
#include
main()
{ float x=323.82631;
printf("%.2e\n",x);
}
则以上语句( )。
输出格式描述符的域宽不够,不能输出
输出为32.38e+01
输出为3.24e+002
输出为3.24e2
若有以下定义和语句:
int u=011,v=0x11,w=11;
printf("%o,%x,%d\n",u,v,w);
则输出结果是( )。
9,17,11
9,11,11
11,11,11
11,17,11
~C
语句"printf("a\bhow\'are\'y\\\bou\n");"的输出结果是( )。
a\bhow\'are\'y\\bou
a\bhow\'are\'y\bou
how'are'you
ahow'are'y\bou
~C
若变量已正确定义,要求通过scanf("%c%d%c%d",&c1,&a,&c2,&b)语句给变量a和b赋数值32和45,给变量c1和c2赋字符A和B;以下选项中数据从第1列开始输入,正确的输入形式是( )。
A32<回车>B45<回车>
A45<回车>B32<回车>
A32B45<回车>
A 32
B 45<回车>
~D
若有"double a;",则正确的输入语句是( )。
scanf("%lf",a);
scanf("%f",&a);
scanf("%lf",&a);
scanf("%le",&a);
~D
已知i、j、k为int型变量,若要从键盘输入2,3,4<回车>,使i、j、k的值分别为2、3、4,以下正确的输入语句是( )。
scanf("%3d,%3d,%3d",&i,&j,&k);
scanf("%d,%d,%d",&i,&j,&k);
scanf("%d%d%d",&i,&j,&k);
scanf("i=%d,j=%d,k=%d",&i,&j,&k);
~B
下列程序中,fun()函数的功能是计算x^2-2x+6,主函数中将调用fun() 函数计算:
y1=(x+8)^2-2(x+8)+6
y2=sin^2(x)-2sin(x)+6
请填空。
#include "math.h"
double fun(double x) {return(x*x-2*x+6);}
main()
{ double x,y1,y2;
printf("Enter x:");
scanf("%lf",&x);
y1=fun([]);
y2=fun([]);
printf("y1=%lf,y2=%lf\n",y1,y2);
}
有下列程序:
int sub(int n) {return (n/10+n%10);}
main()
{ int x,y;
scanf("%d",&x);
y=sub(sub(sub(x)));
printf("%d\n",y);
}
若运行时输入:1234,程序的输出结果是[<10>]。
下列运算符中优先级最高的运算符是()。
!
%
-=
&&
~A
下列运算符中优先级最低的运算符是()。
||
!=
<=
+
~A
为表示关系x≥y≥z,应使用的C语言表达式是()。
(x>=y)&&(y>=z)
(x>=y)AND(y>=z)
(x>=y>=z)
(x>=y)&(y>=z)
~A
设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是()。a&&b
a<=b
a||b+c&&b-c
!(a
~D
若有int s[4]={1,2,3,4};则s[s[0]+2*s[2]-s[3]]的值是()。
1
2
3
4
~D
对数组的描述正确的是()。
数组一旦定义去大小是固定的,但数组元素的类型可以不同
数组一旦定义去大小是固定的,但数组元素的类型必须相同
数组一旦定义去大小是可变的,但数组元素的类型可以不同
数组一旦定义去大小是可变的,但数组元素的类型必须相同
~B
对字符串"Boy"进行完整赋值的操作是()
char s[3]={'B','o','y'}
char s[]="Boy"
char s[3]={"Boy"}
char s[3];s="Boy"
~B
在c语言中引用数组元素时,其数组下标的数组类型允许是() 整型常量
整型表达式
整型常量或整型表达式
任何类型的表达式
~C
对以下说明语句的正确理解是()
*int a[10]={6,7,8,9,10}
将5个初值依次赋给a[1]至a[5]
将5个初值依次赋给a[0]至a[4]
将5个初值依次赋给a[6]至a[10]
因为数组长度与初值的个数不相同,所以此语句不正确
~B
以下程序段给数组所有元素输入数据,应在下划线处填入的是() *main()
*{
*int a[10],i=0;
*while(i<10) scanf("%d",_______);
*:
*:
*}
a+(i++)
&a(i+1)
a+i
&a[++i]
~D
以下程序的输出结果是()
*main()
*{
* int a[]={2,4,6,8},y=1,x,*p;
*p=&a[1];
*for(x=0;x<3;x++) y+=*(p+x);
*printf("%d\n",y);
*}
17
18
19
20
~C
下述函数定义形式正确的是()
int f(int x;int y)
int f(int x, y)
int f(int x,int y)
int f(x,y:y)
~C
关于函数参数,说法正确的是()
实参与其对应的形参各自占用独立的内存单元
实参与其对应的形参共同占用一个内存单元
只有当实参和形参同名时才占用同一个内存单元
形参是虚拟的,不占用内存单元
~A
用数组名作为函数的实参时,传递给形参的是()
数组的首地址
数组的第一个元素
数组中的全部元素
数组的元素个数
~A
复合语句中定义的变量的作用范围是()
整个源文件
整个函数
整个程序
所定义的复合语句
~D
一个函数的返回值由()确定
return语句中的表达式
调用函数的类型
系统默认的类型
被调用函数的类型
~D
以下说法正确的是()
C语言程序总是从第一个定义的函数开始执行
在C语言程序设计中,要调用的函数必须在main函数中定义C语言程序总是从main函数开始执行
C语言程序中的main函数必须放在程序的开始部分
~C
以下函数的类型是()
*fff(float x)
*{
*printf("",x*x);
*}
与参数x的类型相同
void类型
int类型
无法确定
~C
以下程序的输出结果是()
*fun(int a,int b)
*{int c;
*c=a+b;
*retutn c;
*}
*main()
*{int x=6,y=7,z=8,r;
*r=func((x--,y++,x+y),z--);
*printf("%d\n",r);
*}
11
20
21
31
~C
当说明一个结构体变量时,系统分配给它的内存是() 各成员所需内存总量的总和
结构中第一个成员所需内存量
成员中占内存量最大者所需的容量
结构中最后一个成员所需内存量
~A
设有以下说明语句:
*struct stu
*{int a;
* float b;
*}stutype;
*则下面叙述不正确的是()
strut是结构体类型的关键字
strut stu是用户定义的结构体类型
stutype是用户定义的结构体类型名
a和b都是结构体成员名
~C
C语言结构体类型变量在执行期间()
所有成员一直驻留在内存中
只有一个成员驻留在内存中
部分成员驻留在内存中
没有成员驻留在内存中
~A
若想对文本文件只进行读操作,打开此文件的方式为()
"r"
"W"
"a"
"r+"
~A
如果要打开C盘file文件夹下的abc.dat文件,fopen函数中第一个参数应为()
c:file\abc.dat
c:\file\abc.dat
"c:\file\abc.dat"
"c:\\file\\abc.dat"
~D
用fopen函数打开文件,操作完毕后用()函数关闭它
fopen
open
fclose
close
~C
以下可作为函数fopen中第一个参数的正确格式是()
c:user\test.txt
c:\user\test.txt
"c:\user\test.txt"
"c:\\user\\test.txt"
~D
若执行fopen函数时发生错误,则函数的返回值是()
地址值
1
EOF
~B
若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是()
"ab++"
"wb+"
"rb+"
"ab"
~B
若以"a+"方式打开一个已存在的文件,则以下叙述正确的是()