单项选择
================================================== 题号: 1482
执行以下程序段后,输出结果和 a的值是()。 int a=10; printf("%d",a++); A、11 和 10
B、11 和 11
C、10 和 11
D、10 和 10
答案:
C
题号: 2100
已知字符 'A' 的ASCⅡ代码值是 65, 字符变量 c1的值是 'A',c2 的值是 'D'. 执行语句
printf("%d,%d",c1,c2-2); 后, 输出结果是
A、65,66
B、A,B
C、65,68
D、A,68
答案:
A
题号: 5055
相同结构体类型的变量之间,可以()。
A、比较大小
B、地址相同
C、赋值
D、相加
答案:
C
题号: 3217
int a[10]; 合法的数组元素的最小下标值为()。
A、1
B、0
C、10
D、9
答案:
B
题号: 45
能正确表示逻辑关系 :" a ≥10或 a≤ 0 " 的C语言表达式是A、a>=0 | a<=10
B、a>=10 or a<=0
C、a>=10 && a<=0
D、a>=10 || a<=0
答案:
D
题号: 157
main()
{int x=1,a=0,b=0;
switch (x)
{ case 0: b++; case 1: a++;
case 2: a++;b++;} printf("a=%d,b=%d",a,b);
} 该程序的输出结果是 ( ) A、2,2
B、2,1
C、1,1
D、1,0
答案:
B
题号: 4784
设变量 a是整型, f 是实型, i 是双精度型,则表达式 10+'a'+i*f 值的数据类型为()。
A、不确定
B、double
C、int
D、float
答案:
B
题号: 1647
以下程序中, while 循环的循环次数是 ______
main()
{
int i=0;
while(i<10)
{
if(i<1) continue;
if(i==5) break;
i++;
}
}
A、死循环,不能确定次数
B、6
C、4
D、1
答案:
A
题号: 191
若有说明语句 :char c='\72'; 则变量 c()。
A、说明不合法, c的值不确定
B、包含 3个字符
C、包含 1个字符
D、包含 2个字符
答案:
C
题号: 1300
下列程序运行结果为:
#define P 3
#define S(a) P*a*a
main()
{int ar;
ar=S(3+5);
printf("\n%d",ar);
}
A、192
B、25
C、29
D、27
答案:
C
判断
==================================================
题号: 6755
若 i =3 ,则 printf("%d",-i++); 输出的值为 -4 。
答案:错误
题号: 6167
表达式 (j=3, j++)
的值是 4.
答案:错误
题号: 1495
C语言中只能逐个引用数组元素而不能一次引用整个数组。
答案:正确
题号: 2921
参加位运算的数据可以是任何类型的数据。
答案:错误
题号: 2691
若有 int i=10,j=2; 则执行完 i*=j+8; 后ⅰ的值为 28。
答案:错误
题号: 464
若 a=3,b=2,c=1 则关系表达式 "(a>b)==c" 的值为 " 真" 。
答案:正确
题号: 66
若有 # define S(a,b) a*b 则语句 area=S(3,2); area 的值为 6。
答案:正确
题号: 758
若有宏定义: #define S(a,b) t=a;a=b;b=t 由于变量 t 没定义,所以此宏定义是错误的。
答案:错误
题号: 2158
#define 和printf 都不是 C语句。
答案:正确
题号: 5102
关系运算符 <= 与 == 的优先级相同。
答案:错误
填空
==================================================
题号: 1076
表达式 3.5 + 1 / 2的计算结果是 _____。
答案:
空 1:
3.5
题号: 551
请写出以下程序的输出结果 _____。
main()
{ int a = 100;
if( a > 100) printf( “n%d” , a > 100);
else printf( “n%d” , a <= 100);
}
答案:
空 1:
1
题号: 3255
表达式( int )(( double )( 5/2 )+2.5 )的值是 _____.
答案:
空 1:
4
题号: 2472
阅读下面程序,程序执行后的输出结果为 _____。
#include "stdio.h"
main()
{
char a,b;
for (a=′ 0′ ,b=′ 9′ ;a)
printf ("%c%c",a,b) ;
printf ("\n") ;
}
答案:
空 1:
0918273645
题号: 937
以下程序段的输出结果是 _____。
int i = 0, sum = 1;
do
{ sum += i++;
} while( i < 5);
printf( “\n%d”, sum);
答案:
空 1:
11
题号: 5213
以下程序段的输出结果是 _____、_____、_____、 _____、_____。
int x = 0177;
printf( “ x = %3d, x = %6d, x = %6o, x = %6x, x = %6un” , x, x, x, x, x);
答案:
空 1:
x = 127
空 2:
x = 127
空 3:
x = 177
空 4:
x = 7f
空 5:
x = 127
题号: 3210
以下程序的输出结果是 _____。
main()
{
int a = 3, b = 2, c = 1;
c -= ++b;
b *= a + c;
{ int b = 5, c = 12;
c /= b * 2;
a -= c;
printf( “ %d, %d, %d, ” , a, b, c );
a += --c;
}
printf( “ %d, %d, n%d”, a, b, c);
}
答案:
空 1: 2,5,1,2,3,-2
题号: 4474
当计算机用两个字节存放一个整数时, 其中能存放的最大十进制整数是 _____、最小
十进制整数是 _____,它们的二进制形式是 _____。
答案:
空 1:
65535
空 2:
-32768
空 3:
1111 1111 1111 1111,1000 0000 0000 0000
题号: 2791
结构化程序由 _____、 _____、_____三种基本结构组成。
答案:
空 1:
顺序
空 2:
条件分支 【或】 选择
空 3:
循环
题号: 561
阅读下面程序,程序执行后的输出结果是 _____。
#include "stdio.h"
main()
{
int x,y,z;
x = 1; y = 2; z = 3;
if (x>y)
if ( x>z)printf ("%d",x );
else printf ("%d",y ) ;
printf ("%d\n",z );
}
答案:
空 1:
3
程序设计
==================================================
题号: 2660
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:计算出 k以内最大的 10个能被 13或17整除的自然数之和。( k〈3000)。
------------------------------------------------*/
#include
#include"conio.h"
void bky();
int fun(int k)
{
/**********
Begin **********/
/********** End **********/
}
main()
{
int m;
printf("Enter m: ");
scanf("%d", &m);
printf("\nThe result is %d\n", fun(m));
bky();
}
void bky()
{
FILE *IN,*OUT;
int s ;
int t;
int o;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Read FILE Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Write FILE Error");
}
for(s=1;s<=5;s++)
{
fscanf(IN,"%d",&t);
o=fun(t);
fprintf(OUT,"%d\n",o);
}
fclose(IN);
fclose(OUT);
}
示例代码:
int a=0,b=0;
while((k>=2)&&(b<10))
{if((k%13==0)||(k%17==0))
{a=a+k;b++;}
k--;
}
return a;
题号: 5854
C语言中不可以嵌套的是()。
A、选择语句
B、循环语句
C、函数调用
D、函数定义
答案:
D
题号: 1957
C语言中 , 逻辑" 真" 等价于
A、非零的整数
B、大于零的整数
C、非零的数
D、大于零的数
答案:
C
题号: 3786
用户定义的函数不可以调用的函数是()。
A、本文件外的
B、main函数
C、本函数下面定义的
D、非整型返回值的
答案:
B
题号: 1764
以下叙述中正确的是 ()。
A、C程序中注释部分可以出现在程序中任意合适的地方
B、分号是 C语句之间的分隔符 , 不是语句的一部分
C、花括号 “{“和”}”只能作为函数体的定界符
D、构成 C程序的基本单位是函数 , 所有函数名都可以由用户命名答案:
A
题号: 299
下面四个选项中,均是不合法的浮点数的选项是()。
A、-e3 .234 1e3
B、160. 0.12 e3
C、123 2e4.2 .e5
D、-.18 123e4 0.0
答案:
C
题号: 6131
假定所有变量均已正确定义,下列程序段运行后 x的值是()。
k1=1;
k2=2;
k3=3;
x=15;
if(!k1) x--;
else if(k2) x=4;
else x=3;
A、15
B、14
C、3
D、4
答案:
D
题号: 3208
若变量已正确定义,以下程序段的输出结果是
x=5.16894;
printf( “n%f” , (int)(x*1000+0.5)/(float)1000); A、5.17000
B、输出格式说明与输出项不匹配,输出无定值
C、5.168000
D、5.169000
答案:
D
题号: 5043
以下选项中合法的实型常数是()。
A、5E2.0
B、1.3E
C、E-3
D、.2E0
答案:
D
题号: 5608
有以下程序
main()
{ int i;
for(i=0; i<3; i++)
switch(i)
{ case 1: printf("%d", i);
case 2: printf("%d", i);
default : printf("%d", i);
}
}
A、将 5个初值依次赋给 a[1] 至a[5]
B、将 5个初值依次赋给 a[6] 至a[10]
C、因为数组长度与初值的个数不相同 , 所以此语句不正确D、将 5个初值依次赋给 a[0] 至a[4]
答案:
D
判断
==================================================
题号: 1325
若有说明 int c; 则while(c=getchar()); 是正确的 C语句。
答案:正确
题号: 3386
若有 int ⅰ=10, j=0;
if (j=0) ⅰ+ +; else
则执行完语句
ⅰ - -; ⅰ的值为 11。
答案:错误
题号: 464
若 a=3,b=2,c=1 则关系表达式 "(a>b)==c" 的值为 " 真" 。
答案:正确
题号: 2316
while 和do⋯ while 循环不论什么条件下它们的结果都是相同的 .
答案:错误
题号: 2989
char c[]="Very Good"; 是一个合法的为字符串数组赋值的语句。
答案:正确
题号: 5034
语句 scanf("%7.2f",&a); 是一个合法的 scanf 函数。
答案:错误
题号: 2067
如果想使一个数组中全部元素的值为 0,可以写成
int a[10]={0*10};
答案:错误
题号: 5263
x*=y+8 等价于 x=x*(y+8) 。
答案:正确
题号: 3862
如果函数值的类型和 return 语句中表达式的值不一致,则以函数类型为准。
答案:正确
题号: 3558
整数 -32100 可以赋值给 int 型和 long int 型变量。
答案:正确
填空
==================================================
题号: 551
请写出以下程序的输出结果 _____。
main()
{ int a = 100;
if( a > 100) printf(
else printf(
“n%d” , a > 100);
“n%d” , a <= 100);
}
答案:
空 1:
1
题号: 1575
对以下数学式,写出三个等价的 C语言表达式是 _____、_____、 _____
a
b c
空 1:
3.5
题号: 2758
若 x为 double型变量,请写出运算 x = 3.2, ++x后表达式的值 _____和变量的值 _____。
答案:
空 1:
4.2
空 2:
4.2
题号: 582
以下程序的执行结果是 _____。
main()
{
int k=8;
switch ( k)
{
case 9: k+=1;
case 10: k+=1;
case 11: k+=1; break;
default: k+=1;
}
printf ("%d\n",k );
}
答案:
空 1:
9
题号: 2868
若要通过以下语句给 a、b、c、 d分别输入字符 A 、 B、 C、D,给 w、 x、 y、 z分别输
入
10、20、 30、40,正确的输入形式是 _____。请用
scanf( “ %d%c%d%c%d%c%d%c”,&w, &a, &x,&b, &y, &c, &z, &d); 答案:
空 1:
10A20B30C40D
题号: 4063
以下程序段的输出结果是 _____、_____、_____、 _____
double a = 513.789215;
printf( “ a = %8.6f, a = %8.2f, a = %14.8f, a = %14n.”8lf, a, a, a, a);
答案:
空 1:
a = 513.789215
空 2:
a = 513.79
空 3:
a = 513.78921500
空 4:
a = 513.78921500
题号: 5076
以下程序的输出结果是 _____。
main()
{int a=0;
a+=( a=8) ;
printf ("%d\n",a); }
答案:
空 1:
16
题号: 5410
以下程序的执行结果是 _____。
main()
{
int a, b, *p = &a, *q = &b;
a = 10;
b = 20;
*p = b;
*q = a;
printf( “a = %d, b = %d\n ”, a, b);
}
答案:
空 1:
a = 20, b = 20
题号: 6975
以下程序的输出结果是 _____。
main()
{ int x = 2;
while ( x-- );
printf( “n%d” , x);
}
答案:
空 1:
-1
程序设计
==================================================
题号: 58
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:将字符串中的小写字母转换为对应的大写字母,其它字符不变。
------------------------------------------------*/
#include "string.h"
#include
void bky();
void change(char str[])
{
/**********
Begin **********/
/********** End **********/
}
main()
{
void change();
char str[40];
gets(str);
change(str);
puts(str);
bky();
}
void bky()
{
FILE *IN,*OUT;
char i[200];
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Read FILE Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Write FILE Error");
}
fscanf(IN,"%s",i);
change(i);
fprintf(OUT,"%s\n",i);
fclose(IN);
fclose(OUT);
}
示例代码:
int i;
for(i=0;str[i]!='\0';i++)
if(str[i]>='a' && str[i]<='z')
str[i]=str[i]-32;
题号: 45
能正确表示逻辑关系 :" a ≥10或 a≤ 0 " 的C语言表达式是A、a>=0 | a<=10
B、a>=10 or a<=0
C、a>=10 && a<=0
D、a>=10 || a<=0
答案:
D
题号: 53
若已定义 x为 int 类型变量,下列语句中说明指针变量 p的正确语句是()。
A、int *p=&x;
B、int p=&x;
C、*p=*x;
D、int *p=x;
答案:
A
题号: 2244
字符串指针变量中存入的是
A、第一个字符
B、字符串
C、字符串的首地址
D、字符串变量
答案:
C
题号: 3722
下列字符数组长度为 5的是
A、char c[10]= {'h', 'a', 'b', 'c', 'd'};
B、char b[]= {'h', 'a', 'b', 'c', 'd', '\0'};
C、char a[]={'h', 'a', 'b', 'c', 'd'};
D、char d[6]= {'h', 'a', 'b', 'c', '\0' };
答案:
C
题号: 2703
从键盘上输入某字符串时,不可使用的函数是()。
A、getchar()
B、scanf()
C、fread()
D、gets()
答案:
A
题号: 3402
以下对整型数组 a的正确说明是:
A、int n = 10, a[n];
B、
C、
D、int a(10);
答案:
C
题号: 130
若 char a[10]; 已正确定义,以下语句中不能从键盘上给 a数组的所有元素输入值的语句是()。
A、scanf("%s",a);
B、for(i=0;i<10;i++)a[i]=getchar(); C、a=getchar();
D、gets(a);
答案:
C
题号: 191
若有说明语句 :char c='\72'; 则变量 c()。
A、说明不合法, c的值不确定
B、包含 3个字符
C、包含 1个字符
D、包含 2个字符
答案:
C
题号: 4539
以下程序的输出结果是
main()
{
int i = 1, j = 3;
printf( “ %d,” , i++);
{ int i = 0;
i += j * 2;
printf( “ %d,%d,” , i, j );
}
pritnf( “ %d,%dn” , i, j );
}
A、1,6,3,2,3
B、2,7,3,2,3
C、1,7,3,2,3
D、2,6,3,2,3
答案:
A
题号: 300
以下对一维整型数组 a的正确说明是()。
A、#define SIZE 10 ( 换行 ) int a[SIZE];
B、int a(10);
C、int n; scanf("%d",&n); int a[n];
D、int n=10,a[n];
答案:
A
判断
==================================================
题号: 2691
若有 int i=10,j=2; 则执行完 i*=j+8; 后ⅰ的值为 28。
答案:错误
题号: 2067
如果想使一个数组中全部元素的值为 0,可以写成
int a[10]={0*10};
答案:错误
题号: 1118
函数调用语句 :func(rec1,rec2+rec3,(rec4,rec5)); 中 , 含有的实参个数是 5.
答案:错误
题号: 1534
C语言所有函数都是外部函数 .
答案:错误
题号: 2158
#define 和printf 都不是 C语句。
答案:正确
题号: 6321
循环结构中的 continue 语句是使整个循环终止执行
答案:错误
题号: 2583
在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。
答案:正确
题号: 3386
若有 int
if (j=0)
ⅰ=10, j=0; ⅰ+ +; else
则执行完语句
ⅰ - -; ⅰ的值为 11。
答案:错误
题号: 2998
c程序总是从程序的第一条语句开始执行 .
答案:错误
题号: 5034
语句 scanf("%7.2f",&a); 是一个合法的 scanf 函数。
答案:错误
填空
==================================================
题号: 582
以下程序的执行结果是 _____。
main()
{
int k=8;
switch ( k)
{
case 9: k+=1;
case 10: k+=1;
case 11: k+=1; break;
default: k+=1;
}
printf ("%d\n",k );
}
答案:
空 1:
9
题号: 5171
把 a1、a2定义成单精度实型变量,并赋初值 1的说明语句是 _____。
答案:
空 1:
float a1 = 1.0, a2 = 1.0;
题号: 63
以下程序的输出结果是 _____。
#define PR(ar) printf( “ ar = %d“ , ar)
main()
{ int j, a[] = { 1, 3, 5, 7, 9, 11, 13, 15}, *p = a + 5;
for(j = 3; j ; j--)
switch( j )
{ case 1:
case 2: PR(*p++); break;
case 3: PR(*(--p) );
}
}
答案:
空 1:
ar=9 ar=9 ar=11
题号: 3255
表达式( int )(( double )( 5/2 )+2.5 )的值是 _____.
答案:
空 1:
4
题号: 1076
表达式 3.5 + 1 / 2的计算结果是 _____。
答案:
空 1:
3.5
题号: 6547
当 a = 1、b = 2、c = 3时,以下 if 语句执行后, a、b、c中的值分别为: _____、_____、
_____
if(a > c)
b = a; a = c; c = b;
答案:
空 1:
3
空 2:
2
空 3:
2
题号: 3925
阅读下面程序,则执行后程序的结果为 _____。
#include "stdio.h"
main()
{
int a=0,b=0;
while ( a<15)
a++;
while ( b++<15);
printf ( "%d,%d\n",a,b );
}
答案:
空 1:
15, 16
题号: 4473
有以下程序段:
s = 1.0;
for(k = 1; k <= n; k++)
s = s + 1.0 / (k * (k + 1));
printf( “n%f” , s);
请填空,使下面的程序段的功能完全与之等同。
s = 0.0;
_____;
k = 0;
do
{ s += d;
_____;
d = 1.0 / (k * (k + 1));
}while(_____ );
printf( “n%f” , s);
答案:
空 1:
d = 1.0
空 2:
k++
空 3:
k <= n
题号: 6975
以下程序的输出结果是 _____。
main()
{ int x = 2;
while ( x-- );
printf( “n%d” , x);
}
答案:
空 1:
-1
题号: 4423
下列程序的功能是输入一个整数, 判断其是否是素数, 若为素数输出 1,否则输出 0. 请填空。
main()
{ int i, x, y=1;
scanf ("%d", &x
) ;
for
(i=2; i<= _____; i++
)
if_____{ y=0; break;}
printf
("%d\n", y
) ;
}
答案:
空 1: x / 2
空 2:
!(x % i) 【或】 x % i == 0
程序设计
==================================================
题号: 788
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:用 while 语句求 1~ 100的累计和。
-------------------------------------------------------*/
void bky();
int fun(int n)
{
/********** Begin **********/
/********** End **********/
}
void main()
{
int sum = 0;
sum=fun(100);
printf ("sum = %d\n", sum);
bky();
}
void bky()
{
FILE *IN,*OUT;
int i;
int iIN,iOUT;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Please Verify The Currernt Dir..it May Be Changed");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. it May Be Changed");
}
for(i=0;i<5;i++)
{
fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
示例代码:
int i=1,sum=0;
while(i<=n)
{
sum=sum+i;
i++;
}
return sum;
题号: 4662
变量 p为指针变量,若 p=&a,下列说法不正确的是()。
A、*(p++)==a++
B、&*p==&a
C、(*p)++==a++
D、*&a==a
答案:
A
题号: 6651
C语言允许函数类型缺省定义,此时函数值隐含的类型是()。
A、long
B、float
C、int
D、double
答案:
C
题号: 6993
若已定义 x和 y为 double 类型,则表达式 x=1,y=x+3/2 的值是()。
A、1
B、2.0
C、2.5
D、2
答案:
B
题号: 6988
以下程序的输出结果是
main()
A、a=%2,b=%5
B、a=%%d,b=%%d
C、a=%d,b=%d
D、a=2,b=5
答案:
C
题号: 5659
若有定义 int a[10],*p=a;, 则p+5表示
A、元素 a[5] 的地址
B、元素 a[6] 的地址
C、元素 a[6] 的值
D、元素 a[5] 的值
答案:
A
题号: 6490
若有说明 :int *p,m=5,n; 以下正确的程序段是()。
A、scanf("%d",&n);*p=n;
B、p=&n;*p=m;
C、p=&n;scanf("%d",*p)
D、p=&n;scanf("%d",&p);
答案:
B
题号: 6073
下列程序的输出结果为()。
main()
{int m=7,n=4;
float a=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf("%f\n",x);
}
A、28.000000
B、27.500000
C、28.500000
D、27.000000
答案:
D
题号: 401
以下所列的 C语言常量中,错误的是()。
A、'\72'
B、0xFF
C、2L
D、1.2e0.5
答案:
D
题号: 1684
int a=1,b=2,c=3; if(a>c)b=a;a=c;c=b; 则c的值为()。
A、3
B、2
C、不一定
D、1
答案:
B
题号: 961
C语言中 while 和 do-while 循环的主要区别是()。
A、while 的循环控制条件比 do-while 的循环控制条件更严格B、do-while 的循环体至少无条件执行一次
C、do-while 的循环体不能是复合语句
D、do-while 允许从外部转到循环体内
答案:
B
判断
==================================================
题号: 3927
两个字符串中的字符个数相同时才能进行字符串大小的比较答案:错误
题号: 5124
7&3+12的值是 15。
答案:错误
题号: 3721
语句 printf("%f%%",1.0/3); 输出为 0.333333 。
答案:错误
题号: 3862
如果函数值的类型和 return 语句中表达式的值不一致,则以函数类型为准。
答案:正确
题号: 6755
若 i =3 ,则 printf("%d",-i++); 输出的值为 -4 。
答案:错误
题号: 4579
通过 return 语句,函数可以带回一个或一个以上的返回值。
答案:错误
题号: 2440
int i,*p=&i; 是正确的 C说明。
答案:正确
题号: 4678
a=(b=4)+(c=6) 是一个合法的赋值表达式。
答案:正确
题号: 6288
十进制数 15的二进制数是 1111.
答案:正确
题号: 464
若 a=3,b=2,c=1 则关系表达式 "(a>b)==c" 的值为 " 真" 。
答案:正确
填空
==================================================
题号: 2713
以下程序段的输出结果是 _____。
printf( “n%d”, strlen( “s0end” ));
答案:
空 1:
3
题号: 2758
若 x为 double型变量,请写出运算 x = 3.2, ++x后表达式的值 _____和变量的值 _____。
答案:
空 1:
4.2
空 2:
4.2
题号: 3121
若有定义: int a=8 , b=5,c 执行语句 c=a/b+0.4 后, c的值为 _____
答案:
空 1:
1
题号: 4474
当计算机用两个字节存放一个整数时, 其中能存放的最大十进制整数是 _____、最小
十进制整数是 _____,它们的二进制形式是 _____。
答案:
空 1:
65535
空 2:
-32768
空 3:
1111 1111 1111 1111,1000 0000 0000 0000
题号: 4683
若从键盘输入 58,则以下程序输出的结果是 _____。
main()
{
int a;
scanf"%d",&a );
if (a>50)printf ("%d",a);
if (a>40)printf ("%d",a);
if (a>30)printf ("%d",a);
}
答案:
空 1:
585858
题号: 1262
请写出与以下表达式等价的表达式是 A )_____B)_____。
A)!( x>0) B )! 0
答案:
空 1:
x <= 0
空 2:
1
题号: 5076
以下程序的输出结果是 _____。
main()
{int a=0;
a+=( a=8) ;
printf ("%d\n",a); }
答案:
空 1:
16
题号: 5410
以下程序的执行结果是 _____。
main()
{
int a, b, *p = &a, *q = &b;
a = 10;
b = 20;
*p = b;
*q = a;
printf( “a = %d, b = %d\n ”, a, b);
}
答案:
空 1:
a = 20, b = 20
题号: 5299
运用位运算,能将八进制数 0125000除以 4,然后赋给变量 a的表达式是 _____。
答案:
空 1:
a = 0125000>>2
题号: 2211
在 C语言程序中,用关键字 _____定义基本整型变量,用关键字 _____定义单精度实型变量,用关键字 _____定义双精度实型变量。
答案:
空 1:
int
空 2: float 空 3: double
程序设计
==================================================
题号: 4003
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:求一个四位数的各位数字的立方和
------------------------------------------------*/
#include
void VV();
int fun(int n)
{
/********** Begin **********/
/********** End ***********/
}
main()
{
int k;
k=fun(1234);
printf("k=%d\n",k);
VV();
}
void VV()
{
FILE *IN,*OUT;
int iIN,iOUT,i;
IN=fopen("22.IN","r");
if(IN==NULL)
{
printf("Please Verify The Currernt Dir..it May Be Changed");
}
OUT=fopen("22.out","w");
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. it May Be Changed");
}
for(i=0;i<10;i++)
{
fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
示例代码:
int d,k,s=0;
while (n>0)
{
d=n%10;
s+=d*d*d;
n/=10;
}
return s;
题号: 6991
以下程序的执行结果是 ________.
main()
{ int w = 1, x = 2, y = 3, z = 4; w =( w < x ) ? x : w;
w =( w < y ) ? y : w;
w =( w < z ) ? z : w;
printf( "%d " , w );}
A、2
B、4
C、3
D、1
答案:
B
题号: 5467
若有说明 :int n=2,*p=&n,*q=p; ,则以下非法的赋值语句是()。
A、n=*q;
B、p=q;
C、p=n;
D、*p=*q;
答案:
C
题号: 5820
以下程序的输出结果是
void prtv(int *x)
{ printf( “n%d” , ++*x); } main()
{ int a = 25;
prtv(&a);
}
A、24
B、26
C、23
D、25
答案:
B
题号: 6988
以下程序的输出结果是
main()
{ int a = 2, b =5;
printf( “ a=%%d,b=%%dn” ,a, b);
}
A、a=%2,b=%5
B、a=%%d,b=%%d
C、a=%d,b=%d
D、a=2,b=5
答案:
C
题号: 6976
语句 printf("a\bre\'hi\'y\\\bou\n");
的输出结果是
( 说明 :'\b' 是退格符 ) ()。
A、a\bre\'hi\'y\\\bou
B、re'hi'you
C、abre'hi'y\bou
D、a\bre\'hi\'y\bou
答案:
B
题号: 166
以下关于运算符优先顺序的描述中正确的是()。
A、关系运算符 <算术运算符 <赋值运算符 <逻辑运算符B、赋值运算符 <逻辑运算符 <关系运算符 <算术运算符C、算术运算符 <关系运算符 <赋值运算符 <逻辑运算符D、逻辑运算符 <关系运算符 <算术运算符 <赋值运算符答案:
B
题号: 333
下列语句的结果是()。
main()
{ int j;
j=3;
printf("%d,",++j);
printf("%d",j++);
}
A、3,4
B、4,4
C、4,3
D、3,3
答案:
B
题号: 457
设 a和 b均为 double 型变量,且 a=5.5 、b=2.5 ,则表达式 (int)a+b/b 的值是A、6.000000
B、5.500000
C、6
D、6.500000
答案:
A
题号: 523
若有定义 :int a=7;float x=2.5,y=4.7;
则表达式 x+a%3*(int)(x+y)%2/4 的值是()。
A、3.500000
B、0.000000
C、2.750000
D、2.500000
答案:
D
题号: 855
若有以下程序段: int a=3,b=4; a=a^b;b=b^a;a=a^b; 则执行以上语句后, a和 b的值分别是()。
A、a=4,b=4
B、a=3,b=3
C、a=3,b=4
D、a=4,b=3
答案:
D
判断
==================================================
题号: 1325
若有说明 int c; 则while(c=getchar()); 是正确的 C语句。
答案:正确
题号: 478
C语言中 "%"运算符的运算对象必须是整型 .
答案:正确
题号: 2998
c程序总是从程序的第一条语句开始执行 .
答案:错误
题号: 3246
假设有 int a[10], *p; 则p=&a[0] 与p=a等价
答案:正确
题号: 2158
#define 和printf 都不是 C语句。
答案:正确
题号: 1498
C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。
答案:正确
题号: 6288
十进制数 15的二进制数是 1111.
答案:正确
题号: 5263
x*=y+8 等价于 x=x*(y+8) 。
答案:正确
题号: 2691
若有 int i=10,j=2; 则执行完 i*=j+8; 后ⅰ的值为 28。
答案:错误
题号: 5102
关系运算符 <= 与 == 的优先级相同。
答案:错误
填空
==================================================
题号: 937
以下程序段的输出结果是 _____。
int i = 0, sum = 1;
do
{ sum += i++; } while( i < 5);
printf( “n%d”, sum);
答案:
空 1:
11
题号: 1076
表达式 3.5 + 1 / 2的计算结果是 _____。
答案:
空 1:
3.5
题号: 1797
以下程序段,要求通过 scanf语句给变量赋值,然后输出变量的值。写出运行时给 k 输入 100,给 a输入 25.81,
给 x输入 1.89234时的三种可能的输入形式 _____、_____、 _____。
int k; flaot a; double x;
scanf( “ %d%f%lf” , &k, &a, &x);
printf( “ k = %d, a = %f, x =n%f” , k, a, x);
答案:
空 1:
100 25.81 1.8923
空 2:
100 25.81 1.8923
空 3:
100 25.81 1.8923
题号: 2472
阅读下面程序,程序执行后的输出结果为 _____。
#include "stdio.h"
main()
{
char a,b;
for (a=′ 0′ ,b=′ 9′ ;a)
printf ("%c%c",a,b) ;
printf ("\n") ;
}
答案:
空 1:
0918273645
题号: 2797
以下程序的输出结果是 _____。
unsigned fun6(unsigned
num)
{
unsigned
k = 1;
do
{k *= num % 10; num /= 10;
} while( num); return k;
}
main()
{ unsigned n = 26;
printf( “n%d”, fun6(n));
}
答案:
空 1:
12
题号: 4423
下列程序的功能是输入一个整数, 判断其是否是素数, 若为素数输出 1,否则输出 0. 请填空。
main()
{ int i, x, y=1;
scanf ("%d", &x
) ;
for
(i=2; i<= _____; i++
)
if_____{ y=0; break;}
printf
("%d\n", y
) ;
}
答案:
空 1:
x / 2
空 2:
!(x % i) 【或】 x % i == 0
题号: 6966
设变量 a的二进制数是 00101101,若想通过运算 a^b使a的高 4位取反,低 4位不变,
则 b的二进制数应该是 _____。答案:
空 1: 11110000
题号: 3121
若有定义: int a=8 , b=5,c 执行语句 c=a/b+0.4 后, c的值为 _____
答案:
空 1:
1
题号: 5171
把 a1、a2定义成单精度实型变量,并赋初值 1的说明语句是 _____。答案:
空 1:
float a1 = 1.0, a2 = 1.0;
题号: 6655
*
若表达式( a+b)>c 2&& b!=5|| !( 1/2 )中, a、b、c的定义和赋值为
Int a=3 , b=4,c=2;
则表达式的值为 _____。
答案:
空 1:
1
程序设计
==================================================
题号: 1124
/* 请编写一个函数 fun ,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,
最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。
主函数中 x是数组名, n 是x中的数据个数, max存放最大值, index 存放最大值所在元素的下标。
注意:部分源程序存在文件 prog.c 中。
请勿改动主函数 main和其它函数中的任何内容, 仅在函数 fun 的花括号中填入你编写的若干语句。 */
#include
#include
#include
void fun(int a[], int n , int *max, int *d )
{
/********** Begin **********/
/********** End ***********/
}
void NONO ( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ;
int i, x[20], max , index, n = 10, j ;
fp = fopen("bc06.in","r") ;
if(fp == NULL) {
printf(" 数据文件 bc06.in 不存在 !") ;
return ;
}
wf = fopen("bc06.out","w") ;
for(i = 0 ; i < 10 ; i++) {
for(j = 0 ; j < n ; j++) fscanf(fp, "%d,", &x[j]) ;
fun( x, n , &max, &index);
fprintf(wf, "Max=%d,Index=%d\n", max, index) ;
}
fclose(fp) ;
fclose(wf) ;
}
main()
{ int i, x[20], max , index, n = 10; srand(time(0));
for (i=0;i < n;i++) {x[i] = rand()%50; printf("%4d", x[i]) ; } printf("\n");
fun( x, n , &max, &index);
printf("Max =%5d , Index =%4d\n",max, index );
NONO();
}
示例代码:
int i,base,subscript;
base=a[0]; /* 假定第一个元素的值最大 */
subscript=0; /*subscript 用于存放数组下标
*/
for(i=1;i
if(a[i]>base)
{ /* 将数组中的其他元素与变量
base作比较,如果大于它则
交换两者的值
*/
subscript=i;
base=a[i];
}
}
*max=base; /* 将最大值元素的值赋给 *max*/
*d=subscript; /* 将最大值元素的下标赋给 *d*/
题号: 5537
有定义 :char*p1,*p2; 则下列表达式中正确合理的是
A、p1/=5
B、p1+=5
C、p1=&p2
D、p1*=p2
答案:
C
题号: 5257
若有定义 :int *p[3]; ,则以下叙述中正确的是()。
A、定义了一个名为 *p 的整型数组,该数组含有三个 int 类型元素
B、定义了一个可指向一维数组的指针变量 p,所指一维数组应具有三个 int 类型元素
C、定义了一个指针数组 p,该数组含有三个元素 , 每个元素都是基类型为 int 的指针
D、定义了一个基类型为 int 的指针变量 p,该变量具有三个指针
答案:
C
题号: 6968
C语言中,定义结构体的保留字是()。
A、struct
B、union
C、enum
D、typedef
答案:
A
题号: 1468
设 char *s="\ta\017bc"; 则指针变量 s指向的字符串所占的字节数是()。
A、7
B、6
C、9
D、5
答案:
B
题号: 5300
以下程序的输出结果是
main()
{
int a[] = {1, 2, 3, 4}, i, x = 0;
for(i = 0; i < 4; i++)
{ sub(a, &x); printf( “ %d ” , x);}
pritnf( n“” );
}
sub(int *s,
{ static
int int
*y)
t = 3;
*y = s[t];
t--;
}
A、4444
B、0000
C、1234
D、4321
答案:
D
题号: 1700
以下叙述正确的是 :
A、用 do-while 构成循环时,只有在 while 后的表达式为非零时结束循环B、do-while 语句构成的循环不能用其它语句构成的循环来代替。
C、用 do-while 构成循环时,只有在 while 后的表达式为零时结束循环D、do-while 语句构成的循环只能用 break 语句退出。
答案:
C
题号: 2823
对两个数组 a和b进行如下初始化:
char a[] = “ABCDEF”;
char b[] = { ‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};
则以下叙述正确的是
A、a与b中都存放字符串
B、a数组比 b数组长度长
C、a与b长度相同
D、a与b完全相同
答案:
B
题号: 4522
以下数值中,不正确的八进制数或十六进制数是()。
A、-16
B、0x16
C、16
D、0xaaaa
答案:
A
题号: 1353
对于基本类型相同的两个指针变量之间,不能进行的运算是()。
A、+
B、<
C、=
D、-
答案:
A
题号: 2247
执行下列语句后的结果为()。
int x=3,y;
int *px=&x;
y=*px++;
A、x=3,y=4
B、x=3,y 不知
C、x=4,y=4
D、x=3,y=3
答案:
D
判断
==================================================
题号: 2921
参加位运算的数据可以是任何类型的数据。
答案:错误
题号: 2316
while 和do⋯ while 循环不论什么条件下它们的结果都是相同的 .
答案:错误
题号: 3246
假设有 int a[10], *p; 则p=&a[0] 与p=a等价
答案:正确
题号: 2851
字符处理函数 strcpy(str1,str2) 的功能是把字符串 1接到字符串 2的后面 .
答案:错误
题号: 4703
函数 strlen("ASDFG\n") 的值是 7。
答案:错误
题号: 5124
7&3+12的值是 15。
答案:错误
题号: 6167
表达式 (j=3, j++) 的值是 4.
答案:错误
题号: 4678
a=(b=4)+(c=6) 是一个合法的赋值表达式。
答案:正确
题号: 3721
语句 printf("%f%%",1.0/3); 输出为 0.333333 。
答案:错误
题号: 583
若有定义和语句:
int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);
若通过键盘输入:
10,A,12.5, 则a=10,c='A',f=12.5.
答案:正确
填空
==================================================
题号: 6886
以下程序的执行结果是 _____。
#define PRINT(V) printf( “V = %d\t ”,V)
main()
{
int a, b;
a = 1; b = 2;
PRINT(a);
PRINT(b);
}
答案:
空 1:
V=1 V=2
题号: 6547
当 a = 1、b = 2、c = 3时,以下 if 语句执行后, a、b、c中的值分别为: _____、_____、
_____
if(a > c)
b = a; a = c; c = b;
答案:
空 1:
3
空 2:
2
空 3:
2
题号: 5307
下列程序的执行结果是 _____。
int d = 1;
fun(int p)
{int d = 5; d += p++;
pritnf( “ %d “ , d);
}
main()
{int a = 3;
fun(a);
d += a++;
printf( “n%d” , d);
}
答案:
空 1:
8 4
题号: 1540
以下程序的输出结果是 _____。
double sub(double x, double y, double z)
{ y -= 1.0;
z = z + x;
return z;
}
main()
{ double a = 2.5, b = 9.0;
printf( “n%f” , sub(b- a, a, b));
}
答案:
空 1:
15.500000
题号: 606
以下程序段的输出结果是 _____。
int k, n, m;
n = 10; m = 1; k = 1;
while( k <= n )
m *= 2;
printf( “n%d”, m);
答案:
空 1:
无输出结果 【或】 死循环 【或】 死循环无输出结果
题号: 561
阅读下面程序,程序执行后的输出结果是 _____。
#include "stdio.h"
main()
{
int x,y,z;
x = 1; y = 2; z = 3;
if (x>y)
if ( x>z)printf ("%d",x );
else printf ("%d",y ) ;
printf ("%d\n",z );
}
答案:
空 1:
3
题号: 1240
函数体由符号 _____开始,用符号 _____结束。
答案:
空 1:
{
空 2:
}
题号: 1829
若 k为 int型变量且赋值 11,请写出运算 k++后表达式的值 _____和变量的值 _____。
答案:
空 1:
11
空 2:
12
题号: 2493
将下列数学式改写成 C语言的关系表达式或逻辑表达式是 A )_____B)_____。
A)a=b或 a
答案:
空 1:
a==b || a
空 2:
abs(x)>4 【或】 x<-4 || x>4
题号: 1575
对以下数学式,写出三个等价的 C语言表达式是 _____、_____、 _____
a
b c
答案:
空 1:
a/c/b 【或】 a/(b*c) 【或】 a/b/c
空 2:
a/c/b 【或】 a/b/c 【或】 a/(b*c)
空 3:
a/b/c 【或】 a/c/b 【或】 a/(b*c)
程序设计
==================================================
题号: 5002
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:对某一正数的值保留 2位小数,并对第三位进行四舍五入。
------------------------------------------------*/
#include "stdio.h"
#include "conio.h"
float fun(float h)
{
/*********Begin**********/
/********** End **********/
}
main()
{
float m;
void TestFunc();
printf("Enter m: ");
scanf("%f", &m);
printf("\nThe result is %8.2f\n", fun(m));
TestFunc();
}
void TestFunc()
{
FILE *IN,*OUT;
int s ;
float t;
float o;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Read File Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Write File Error");
}
for(s=1;s<=5;s++)
{
fscanf(IN,"%f",&t);
o=fun(t);
fprintf(OUT,"%8.2f\n",o);
}
fclose(IN);
fclose(OUT);
}
示例代码:
int i;
i=(int)(h*1000)%10;
if(i>=5)
return(int)(h*100+1)/100.0;
else
return(int)(h*100)/100.0;
¥29.8
¥9.9
¥59.8