出几个题目给大家做
《C语言程序设计》练习一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。
2、下列关于C程序变量的叙述, ( )是错误的。
A、变量名必须由字母或下划线开头。
B、程序中的变量必须在被使用之前定义。
C、不同的基本类型的变量之间可以混合运算。
D、变量的数据类型决定变量的"作用域"。
4、以下符号中,合法的用户标识符是( )。
A、-p B、int
C、3ab D、_xt_
5、以下选项中,与m=n++完全等价的表达式是( )。
A、m=++n B、m+=n+1
C、m=n, n=n+1 D、n=n+1,m=n
7、表达式!5&(7+3)&&(4+5)的值是( )。
A、0 B、1
C、5 D、9
8、以下选项中非法的C语言表达式是( )。
A、x+1=x+1 B、0<=x<100
C、i=j==0 D、(char)(65+3)
10、C语言中基本的数据类型包括( )。
A、整型,实型,逻辑型 B、整型,实型,字符型
C、整型,字符型,逻辑型 D、整型,实型,逻辑型,字符型
11、设有变量定义如下:
char ch; int i; float f;
表达式 ch / i + i﹡f + 1.234 的结果的数据类型是( )。
A、float B、char
C、int D、double
12、C语言中前后运算对象都必须是整型的运算符是( )。
A、% B、/
C、++ D、!
13、已定义c为字符型变量, 则下列语句中正确的是( )。
A、c=98; B、c=’98’;
C、c=”98” D、c=”b”
14、以下实型常量中,符合C语言语法的是( )。
A、.5E-3 B、1.2E0.5
C、E15 D、3.14.159E
15、以下4个选项中,不能看作一条语句的是( )。
A、if (a>0); B、{ ; }
C、if (b==0) m=1; n=2; D、a=0, b=0, c=0;
16、要用C语言表示数学关系式a≥b≥c,正确的表达式是( )。
A、a>=b>=c B、(a>=b)& (b>=c)
C、(a>=b) || (b>=c) D、(a>=b)&& (b>=c)
17、设 i, j, k 均为整型变量, 则执行以下 for 语句后, k 的值是( )。
For (i=0, j=10; i<=j; i++, j--) k=i+j;
A、0 B、5
C、10 D、20
18、若表达式 !x的值为1, 则下列表达式( )的值为1。
A、x = = 0 B、x = = 1
C、x != 1 D、x != 0
19、已知整型变量a=13, b=16, 则a & b的值为( )。
A、0 B、-3
C、1 D、3
20、在一个表达式中含下列运算符,优先级最高的是( )。
A、赋值运算符 B、算术运算符
C、条件运算符 D、关系运算符
21、下列语句组中,正确的是( )。
A、char *s; s={"Beijing"}; B、char s[8]; s={"Beijing"};
C、char *s; s="Beijing"; D、char s[8]; s="Beijing";
22、下述对C语言字符数组的描述中错误的是( )。
A、字符数组可以存放字符串
B、字符数组中的字符串可以整体输入、输出
C、可在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D、不可用关系运算符对字符数组中的字符串进行比较
24、在函数调用语句中的____的个数、类型和次序应与函数定义的____相一致。( )
A、值,变量 B、变量,值
C、形参,实参 D、实参,形参
32、下列语句中,能正确定义一维数组的是( )。
A、 int N=10; int num[N]; B、# define N 10 int num[N];
C、int num[0..10]; D、int num[];
33、下列语句中,不能正确定义二维数组的是( )。
A、int a[2][]={{1,2},{3,4}}; B、int a[2][2]={{1}, 2,3};
C、int a[][2]={1,2,3,4}; D、int a[2][2]={{1},{2}};
35、有以下函数定义 :void fun(int n, double x) { …… }
若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是( )。
A、fun(x,n); B、void fun(n,x);
C、fun(int y, double m); D、k=fun(10,12.5);
36、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。
A、函数调用可以出现在表达式中
B、函数调用可以作为独立的语句存在
C、函数调用可以作为一个函数的实参
D、函数调用可以作为一个函数的形参
39、下列程序的输出结果为( )。 #include <stdio.h>
main()
{char a = ‘a’, b;
printf(”%c,”, ++a);
printf(”%c\n”, b=a++); }
A、a, b B、a, c
C、b, b D、b, c
40、下列程序的输出结果为( )。
#include <stdio.h>
#define
F(X,Y) X﹡Y
main( )
{ int a=3, b=4;
printf("%d\n", F(a++, b++)); }
A、12 B、16
C、20 D、24
41、下列程序的输出结果为( )。 #include<stdio.h>
main( )
{ int a[ ][3]=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12;
printf("%d", a[2][1]); }
A、2 B、4
C、7 D、8
42、设有说明语句: int a=1,b=0; 则执行以下语句后, 输出结果为()。
switch(a)
{ case 1: switch(b)
{ case 0: printf("**0**"); break;
case 1: printf("**1**"); break; } default: printf("**2**"); break; }
A、**0** B、**2**
C、 **0****1****2** D、**0** **2**
43、下列程序的输出结果为( )。
main()
{ char ch1,ch2; ch1=’A’+’5’-‘3’;
ch2=’A’+’5’-‘3’; printf(“%d,%c\n”,ch1,ch2); }
A、67,67 B、67,C
C、B, C D、C, C
44、下列程序的输出结果为( )。
main( )
{ int x=10, y=10;
printf("%d, %d", x++, ++y); }
A、10, 10 B、11, 10
C、11, 11 D、10, 11
45、下列程序的输出结果为( )。
#define SUM(x) x+x
main( )
{ int a=10,k=3, m=2; a/=SUM(k*m)/SUM(m);
printf("%d", a); }
A、0 B、3
C、4 D、6
46、下列程序的输出结果为( )。
#include <stdio.h>
main( )
{int i;
for(i=100; i++)
if (i%5==0) continue; printf("%d", i); break; }
A、100 B、101
C、无限循环 D、程序错误
47、下列程序的输出结果为( )。
main()
{ int x=3, y=2, z=1;
printf("%d\n, x / y & ~z); }
A、0 B、1
C、2 D、3
48、下列程序的输出结果为( )。
#include <stdio.h>
main( )
{ static int a[ ]={1, 3, 5}, b[ ]={2, 6, 10};
int i, s=0;
for(i=0; i<3; i++) s+=a[i] / b[i];
printf("%d", s); }
A、0 B、1
C、1.5 D、2
49、下列程序段的输出结果为( )。
int a=4,b=3,c=2,d=1;
printf(“%d”,(a<b?a:d<c?d:b));
A、1 B、2
C、3 D、4
50、下列程序段的输出结果为( )。
int x=3;
do{ printf(“%d ”, x -= 2 );}
while( !(--x) );
A、1 B、1 -2
C、3 0 D、死循环
51、下列程序的输出结果为( )。
main( )
{ int a[7] = {1, 2, 3, 4, 5, 6, 7}, *p=a;
printf(“%d\n”, *(p+3) ); }
A、1 B、2
C、3 D、4
54、下列程序输入: 81635ac76201 显示结果为( )
#include <stdio.h>
void main( )
{ int i; float x; char s[10];
scanf("%3d%f%4s", &i, &x, s);
printf("%d %6.3f %s\n", i, x, s); }
A、816 35.000 ac B、816 35.000 ac76
C、816 35.0 ac D、816 35.0 ac76
55、下列程序的输出结果为( )。
main( )
{ union
{ long k;
int i[6];
char c[4];}
r;
printf("%d", sizeof(r));}
A、4 B、6
C、12 D、20
59、下列程序输出结果为( )。
f( )
{ static c=3;
return(c++);
}
main( )
{ int i, k;
for(i=0; i<2; i++) k=f( ); printf("%d", k);
}
60、下列程序运算结果为( )。
main( )
{ long n, d;
int i=0; n=657354;
while(n!=0)
{ d=n%10;
printf("%d", d); n/=10; }
}
A、453756 B、354657
C、657354 D、756453
二、填空题,每个空2分,共40分(将正确答案直接写在题目的横线上)。
4、下述C程序的功能为:判断大于2的正整数n是否为素数,是素数输出yes,不是素数则输出no。请填空以完成程序。
main() {
int n, i, k;
printf("please input n");
scanf("%d",&n);
k=【9】 ;
for(i=2; i<=k; i ++ )
if (【10】 ) break;
if (i>k) printf("yes");
else printf("no");
}
6、以下程序运行后的输出结果是:(【15】 )。
void fun(int x,int y) {
x=x+y;y=x-y;x=x-y;
printf("%d,%d,",x,y);
}
main() {
int x=2,y=3;
fun(x,y);
printf("%d,%d\n",x,y);
}
8、以下程序的运行结果是:(【17】 )。
void main() {
int i=2,j=3,k;
k=i+j;
{
int k=8;
if (i==2) printf("%d,",k);
}
printf("%d,%d\n",i,k);
}
9、下述C程序的功能为:求最大值,请填空以完成程序。
void main() {
int i,max,a[10];
printf("input 10 numbers:\n");
for (i=0;i<10;i++) scanf("%d",【18】 );
【19】 ;
for (i=1;i<10;i++) /*结束条件不能为i<=10*/
if (【20】 ) 【21】 ;
printf("maxmum=%d\n",max);
}
10、下述C程序的功能为:排序,请填空以完成程序。
void main() {
int i,j,pos,max,tmp,a[10];
printf("\ninput 10 numbers:\n");
for (i=0;i<10;i++) scanf("%d",&a[i]);
for (i=0;i<10;i++) {
pos=i;
【22】 ;
for (j=i+1;j<10;j++)
if (max<a[j]) {pos=j; 【23】 ;}
if (i!=pos) {【24】 }
printf("%6d",a[i]);
}
printf("\n");
}
13、下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空:
main(){
int i, j;
for (i=0; 【31】 ; i++) {
j=i*10+6;
if (【32】 ) continue;
printf("%d",j);
}
}
[[italic] 本帖最后由 C语言的深度 于 2007-12-16 11:44 编辑 [/italic]]