admin 管理员组文章数量: 887021
2023年12月16日发(作者:profinet是什么意思)
1、一个C语言的源程序中A)必须有一个主函数
B)可以有多个主函数
C)必须有主函数和其他函数
D)可以没有主函数
2、关于C程序的主函数,以下描述中正确的是A)C程序的第一个函数称为主函数,程序从该函数开始运行。
B)C程序的主函数即是main函数,程序从该函数开始运行。
C)C程序可以有多个主函数,程序从第一个主函数开始运行。
D)C程序可以没有主函数,程序从第一个函数开始运行。
3、C程序中,return语句的作用是A)终止程序运行
B)返回到上层循环
C)返回到外层结构
D)返回到上层函数
4、C语言程序的3种基本结构是A)顺序结构,选择结构,循环结构
B)递归结构,循环结构,转移结构
C)嵌套结构,递归结构,顺序结构
D)循环结构,转移结构,顺序结构
5、以下对C程序的描述中正确的是A)C程序总是从main()函数开始执行。
B)C程序可以从程序中的任何函数开始执行。
C)C程序总是从第一个定义的函数开始执行。
D)C程序中的main()函数必须放在程序的开始部分。
6、关于C程序第1行的包含语句,以下写法中正确的是A)#include stdio.h
B)#include 'stdio.h'
C)#include (stdio.h)
D)#include
7、关于C语言程序,正确的编程流程应该是A)编辑→保存→编译→运行
B)编译→编辑→运行→保存
C)保存→运行→编辑→编译
D)运行→编译→保存→编辑
[正确答案: A]。
[正确答案: D]。
[正确答案: A]。
[正确答案: A]。
[正确答案: D]。
[正确答案: B]。
[正确答案: A]。
8、下列的哪个不是C语言的关键字A)while
B)auto
C)break
D)printf
9、下列的哪个不是C语言的算术运算符A)+
B)%
C)=
D)-
10、下列的哪个不是C语言的关系运算符A)>=
B)<=
C)=
D)!=
11、下列的哪个是错误的描述A)代码如果没有缩排是错误的
B)程序总是从main函数开始执行
C)注释/*和*/不可以嵌套
[正确答案: D]。
[正确答案: C]。
[正确答案: C]。
[正确答案: D]。
D)C源文件经过编译先生成目标文件,再经过连接才能生成可执行文件
12、以下哪个是合法的用户标识符A)3ab
B)_isw
C)float
D)b-b
13、以下四项中哪个不是合法的变量名A)INT
B)int
C)year2009
D)my_program
14、以下选项中,合法的C语言用户标识符是A)b-a
B)5ab
C)int
D)_5ab
15、以下选项中,三种类型都是C语言的基本类型的是[正确答案: C]。
[正确答案: D]。
[正确答案: B]。
[正确答案: B]。
A)int, long, real
B)integer, short, double
C)int, float, char
D)int, decimal, char
16、关于main函数的实现,以下写法中必定错误的是A)main { printf("Hellon"); }
B)main() { printf("Hellon"); }
C)int main(void) { printf("Hellon"); }
D)void main() { printf("Hellon"); }
17、把x,y定义成float类型,并赋同一初值3.14,正确的是A)float x,y=3.14;
B)float x,y=2*3.14;
C)float x=y=3.14;
D)float x=3.14,y=x;
18、若变量已正确定义并赋值,以下哪个表达式不符合C语言语法A)a*b/c
B)3.14%2
C)2,b
D)a/b/c
19、设int n,m; 使m为n的十进制百位数的语句是A)m = n/100;
B)m = n%100;
C)m = n/100%10;
D)m = n%10/100;
20、设float x,y; 使y为x的小数部分的语句是A)y = (int)x;
B)y = int(x);
C)y = x – (int)x;
D)y = x – int(x);
21、C语言中的运算对象必须是整型的运算是A)/
B)=
C)>=
D)%
22、设要定义n为整型变量,定义x为双精度实型变量,正确的语句是A)int n, double x,
B)int n, double x;
[正确答案: C]。
[正确答案: D]。
[正确答案: C]。
[正确答案: C]。
[正确答案: B]。
[正确答案: C]。
[正确答案: A]。
C)int n; double x;
D)int n; double x,
23、设有int n; 从键盘上输入整数给变量n,正确的语句是A)scanf( n );
B)scanf( "n" );
C)scanf( "%d", n );
D)scanf( "%d", &n );
24、设有int n=10; 要求屏幕上显示“n=10”结果,正确的语句是A)printf( n );
B)printf( "n=", n );
C)printf( "n=%d", n );
D)printf( "n=%d", &n );
25、以下哪条语句输出字符'a'的ASCII编码A)printf("%d",a);
B)printf("%d",'a');
C)printf("%c",'a');
D)putchar(a);
26、设有定义 int a; char c; 执行输入语句
scanf("%d%c",&a,&c);
若要求a和c得到的值为10和'Y',请选择正确的键盘输入方式A)10,Y
B)10Y
C)10<空格>Y
D)10<回车>Y
27、设有如下语句int x,y; scanf("%d%d",&x,&y); 如果要使变量x得到数值11,变量y得到数值22,正确的输入应是(□表示空格,↙表示回车)A)x=11□y=22↙
B)x=11↙y=22↙
C)11,12↙
D)11□22↙
28、设有char ch; 与语句“ch=getchar();”等价的语句是A)scanf("%c",ch);
B)scanf("%c",&ch);
C)printf("%c",ch);
D)printf("%c",&ch);
29、语句printf("%.1f,%dn",10./4,10/8); 的输出是A)2.5,1.25
[正确答案: B]。
[正确答案: B]。
[正确答案: D]。
[正确答案: B]。
[正确答案: B]。
[正确答案: C]。
[正确答案: D]。
B)2.5,1
C)1,1.25
D)2,1.25
30、下列语句段的运行结果是int a=1234;float x=56.789;
printf("%3d,%4.2fn",a,x);
A)1234,56.79
B)1234 56.79
C)1234,56.789
D)1234 56.789
31、执行以下程序段后,c3的值是int c1=1,c2=2,c3;
c3=c1/c2;
A)0
B)2
C)0.5
D)1
32、变量a与b分别初始为10与20,正确的语句是A)int a=10, int b=20;
B)int a=10, b=20;
C)int a=10; b=20;
D)int a=10; b=20,
33、下列的哪个不是C语言的逻辑运算符A)!
B)&&
C)&
D)||
34、以下选项中错误的整型常量是A)123.
B)-346
C)0x5A
D)0777
35、以下选项中正确的C语言常量是A)0xEfGh
B)'XYZ'
C)12.34e5
D)'5A'
[正确答案: C]。
[正确答案: A]。
[正确答案: C]。
[正确答案: B]。
[正确答案: A]。
[正确答案: A]。
36、以下四项中不合法的C语言常量是A)'xab'
B)"x1f"
C)0x1234
D)2.1e3
37、以下选项中不能作为C语言合法常量的是A)"a"
B)'cd'
C)0.1e+6
D)'011'
38、下列不合法的字符常量是A)'xcc'
B)'"'
C)''
D)'018'
39、以下哪个是不正确的字符常量A)'n'
B)'n'
C)"a"
D)'101'
[正确答案: A]。
[正确答案: B]。
[正确答案: D]。
[正确答案: C]。
40、设有定义char c;且c表示一个小写字母,将小写字母转换为对应大写字母的表达式是[正确答案: C]。
A)c - a + A
B)c - A + a
C)c - 'a' + 'A'
D)c - 'A' + 'a'
41、设有变量定义 int i, j; 与表达式 i==0 && j==0 等价的表达式是A)i||j
B)!i&&!j
C)!i==!j
D)i==j
42、设int n; 判断“n不为0”的表达式是A)n==0
B)!(n=0)
C)n=!0
D)n!=0
[正确答案: D]。
[正确答案: B]。
43、设int n; 判断“n为0”的表达式是A)n=0
B)n!=0
C)!(n=0)
D)n==0
44、设int n; 下列选择中“结果恒为真”的表达式是A)n=0
B)n!=0
C)n=1
D)n=n
45、设有定义int a;判断a是一个偶数的表达式是A)a==2*n
B)a/2==0
C)a%2=0
D)a%2==0
46、以下关于C语言逻辑真假的描述中,正确的是A)逻辑真用true表示,逻辑假用false表示
B)逻辑真用yes表示,逻辑假用no表示
C)逻辑真用1表示,逻辑假用0表示
D)表达式(1+2)的逻辑值既不是真,也不是假
47、C源程序中不能表示的数制是A)二进制
B)八进制
C)十进制
D)十六进制
48、设n为16位二进制整数,则n的取值范围是A)-32768至32768
B)-32768至32767
C)0至65536
D)0至65535
[正确答案: D]。
[正确答案: C]。
[正确答案: D]。
[正确答案: C]。
[正确答案: A]。
[正确答案: B]。
49、下列关于long、int、short类型数据占用内存大小叙述中正确的是A)均占4个字节
B)根据数据的大小来决定所占内存的字节数
C)由C语言编译系统决定
D)由用户自己定义
50、下列选项中,不能作为合法常量的是[正确答案: B]。
[正确答案: C]。
A)1.234e04
B)1.234e0.4
C)1.234e+4
D)1.234e0
51、设有定义float x=3.567,y; 赋值使y为3.6的语句是A)y = (int)(10*x+0.5)/10.0;
B)y = (int)(10*x)/10.0;
C)y = (int)(10*x)/10.0 + 0.5;
D)y = (%3.1f) x;
52、能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是A)a>=10 | a<=0
B)a>=10 && a<=0
C)a>=10 || a<=0
D)a>=10 or a<=0
53、C中执行下列代码后整型变量x和y的值是int x=100,y; y=x++;
A)x=100 y=100
B)x=100 y=101
C)x=101 y=100
D)x=101 y=101
54、计算表达式:x=(i=4,j=10,k=24)后,x的值为A)4
B)10
C)24
D)38
55、下列运算符中运算优先级最高的是A)*
B)!
C)&&
D)>=
56、设有定义int m=1,n=6; 赋值使m为8的语句是A)m = (n++) + 1;
B)m = 1 + (++n);
C)m += n==6?1:0;
D)m += n++;
57、设有定义int a=5,b; 赋值使b为9的语句是A)b = ++a+4;
[正确答案: D]。
[正确答案: B]。
[正确答案: B]。
[正确答案: C]。
[正确答案: C]。
[正确答案: C]。
[正确答案: A]。
B)b = (a++)+3;
C)b = 8+!(a==5);
D)b = (a++==6)?8:9;
58、下面哪些是不正确的C语言赋值语句A)a=a+1;
B)i++;
C)a*=1,b=8;
D)a=3
59、执行以下语句的结果为y=10; x=y++;
A)x=10,y=10
B)x=11,y=11
C)x=10,y=11
D)x=11,y=10
60、若有定义语句:char c='n'; 则变量cA)包含4个字符
B)包含2个字符
C)包含1个字符
D)说明不合法,c的值不确定
61、设有变量定义:int a=5, b=8;当执行完语句:b= a
A)5和5
B)5和7
C)5和8
D)5和9
62、将字符变量a与b分别初始为'A'与'B',正确的语句是A)char a,b='A','B';
B)char a='A', char b='B';
C)char a="A", b="B";
D)char a='A', b='B';
63、为表示关系x≤y≤z,正确的C语言表达式是A)(y>=x)&&(y<=z)
B)(x>=y)AND(y>=z)
C)(x>=y>=z)
D)(x>=y)&(y>=z)
64、要判断char型变量m是否是数字,可以使用表达式为A)0<=m && m<=9
[正确答案: B]。
[正确答案: A]。
[正确答案: D]。
[正确答案: C]。
[正确答案: C]。
[正确答案: D]。
B)m>='0' && m<='9'
C)"0"<=m && m<="9"
D)'0'<=m <='9'
65、设char ch; 判断“ch为数字字符”的表达式是A)ch>='0' && ch<='9'
B)ch>0 && ch<9
C)ch>='0' || ch<='9'
D)ch>=0 || ch<=9
66、设有int n; 则判断“n为二位数正整数”的表达式是A)10<=n<=99
B)10<=n || n<=99
C)10<=n, n<=99
D)10<=n && n<=99
67、设有int a,b; 满足以下判断的表达式是a是3的倍数,或者b不是5的倍数
A)a%3==0 || b%5!=0
B)a%3!=0 || b%5==0
C)a%3!=0 || b%5!=0
D)a%3==0 || b%5==0
68、下列常数中不能作为C的常量的是A)0xA5
B)2.5e-2
C)3e2
D)2e32.6
69、已知int i,a; 执行语句“i=(a=2*3,a*5),a+6;”后,变量i的值是A)6
B)12
C)30
D)36
70、要定义字符型变量c并赋初值,以下正确的语句是A)char c='97';
B)char c="a"
C)char c=65;
D)char c='ab';
71、若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7;
B)a=7+b+c,a++
[正确答案: B]。
[正确答案: C]。
[正确答案: C]。
[正确答案: D]。
[正确答案: A]。
[正确答案: D]。
[正确答案: A]。
C)int(12.3%4)
D)a=a+7=c+b
72、设有定义语句:char c1=92, c2=92; ,则以下表达式中值为零的是A)c1^c2
B)c1&c2
C)~c2
D)c1|c2
73、表达式10 & 12和10 ^ 12的计算结果分别是A)8和14
B)8和6
C)14和8
D)6和8
74、设有定义:int a=15; 则执行语句:a/=a+a; 后a的值是A)0
B)1
C)0.5
D)16
75、设有定义:int a, b, c=10; 下列选项中能将变量c的值赋给变量a和b的是确答案: C]。
A)a=b, b=c, c=a;
B)c=a=b;
C)(a=c)&&(b=c);
D)(a=c)||(b=c);
76、与表达式:!a ? 10 : 20 等价的表达式是A)a==0 ? 10 : 20
B)a!=0 ? 10 : 20
C)a!=1 ? 10 : 20
D)a ? 10 : 20
77、请选出以下四项中不合法的常量A)'123'
B)"123"
C)0x1234
D)2.1e3
78、在位运算中,操作数每右移一位,其结果相当于A)操作数乘以2
B)操作数乘以4
C)操作数除以2
[正确答案: C]。
[正确答案: A]。
[正确答案: A]。
[正[正确答案: A]。
[正确答案: B]。
[正确答案: A]。
D)操作数除以4
79、在位运算中,操作数每左移一位,其结果相当于A)操作数乘以2
B)操作数除以2
C)操作数乘以4
D)操作数除以4
80、假设整数x是一个偶数,请选出表达式值为真的表达式A)x%2==0
B)x%2>0
C)x%2
D)x/2*2-x!=0
81、假设有以下程序段,请问执行后的输出结果是char a='Z';
a = (a>='a'&&a<='z') ? a-'a'+'A' : a;
printf("%c",a);
A)a
B)A
C)z
D)Z
82、设整数n的值为十进制-8, 以16位二进制存贮该数时,其编码是A)0000 0000 0000 1000
B)1000 0000 0000 1000
C)1111 1111 1111 0111
D)1111 1111 1111 1000
83、设int n=-1; 则n在内存中的16位编码是A)1111 1111 1111 1111
B)1000 0000 0000 0001
C)1111 1111 1111 1110
D)0000 0000 0000 0000
84、设整数n的值为十进制-5, 以16位二进制存贮该数时,其编码是A)0000 0000 0000 0101
B)1000 0000 0000 0101
C)1111 1111 1111 1010
D)1111 1111 1111 1011
85、求“abc12n”字符串的长度A)5
B)6
[正确答案: C]。
[正确答案: D]。
[正确答案: A]。
[正确答案: D]。
[正确答案: D]。
[正确答案: A]。
[正确答案: A]。
C)7
D)8
86、设x=7,执行语句y=++x,则y等于A)6
B)7
C)9
D)8
87、下列字符列中,合法的整型常量是A)4.18e3
B)0.46793
C)078
D)9738
88、在C中,char类型数据在内存的存储形式是A. 原码
B)反码
C)补码
D)ASCII码
89、若有定义“int x”,则下面能将x的值强制转换成双精度数的表达式A]。
A)(double) x
B)double (x)
C)(x)double
D)x (double)
90、下述叙述正确的是A)字符型变量不能赋予整数
B)任意整数都能表示字符
C)字符型变量可存放多个字符
D)字符数据的值是整数值
91、设变量int a = 5,b; 下列A)b=a/2
B)b=6-(a--)
C)b=a%2
D)b=a>3?3:2
92、逻辑运算符两侧运算对象的数据A)只能是逻辑型数据
B)只能是整型数据
C)只能是整型或字符型数据
[正确答案: A]。
[正确答案: A]表达式计算后,使得变量b的值等于2 ?
[正确答案: D]。
[正确答案:
[正确答案: D]。
[正确答案: D]。
[正确答案: D]。
D)可以是任何类型的数据
93、设变量x,y,a,b,c,d的值均为1,计算表达式(x=a!=b)&&(y=c!=d)后,变量x,y的值分别是[正确答案: B]。
A)0,0
B)0,1
C)1,0
D)1,1
94、与语句“m += (x=5) + (--y);”等价的语句序列是A)m=m+x+y; x=5; y=y-1;
B)x=5; m=m+x+y; y=y-1;
C)x=5; y=y-1; m=m+x+y;
D)y=y-1; m=m+x+y; x=5;
95、设int x,y,t; 能正确交换变量x与y值的语句序列是A)x=y; y=x;
B)t=y; x=t; y=x;
C)t=x; x=y; y=t;
D)x=t; y=x; t=y;
96、如果要在屏幕上输出字符串“a%b=ab”,则以下确输出字符串。
A)printf("a%b=ab");
B)printf("a%%b=ab");
C)printf("%a%b=%a%b");
D)printf("%a%%b=%a%b");
97、当x=2.5,a=7,y=5.2,求算术表达式x+a%3*(int)(x+y)%2的值为A)2.0
B)2.5
C)3.0
D)3.5
98、设a=3,b=4,c=5,执行!(x=a)&&(y=b)&&0逻辑表达式后,变量x和y的值为确答案: C]。
A)3、4
B)x和y中的值不确定
C)3、不确定
D)不确定、4
99、十进制数57,分别将其转换成C语言中的八进制和十六进制数表示形式为案: C]。
A)71、39
[正确答[正[正确答案: D]。
[正确答案: B]printf语句能正[正确答案: C]。
[正确答案: C]。
B)71Q、39H
C)071、0x39
D)71Q、30x0
100、已知字母A的ASCII码值为十进制65,下面的程序输出的是#include
int main(void)
{
char c1,c2;
c1='A'+'5'-'3';
c2='A'+'6'-'3';
printf("%d,%c",c1,c2);
return 0;
}
A)67,C
B)67,D
C)68,C
D)68,D
[正确答案: B]。
一、分支结构
1、与语句“x+=(a++==b)?c:--d;”功能等价的语句段是A)if (a==b) { a=a+1; x=x+c; }
else { a=a+1; d=d-1; x=x+d; }
B)a=a+1; if (a==b) { x=x+c; }
else { d=d-1; x=x+d; }
C)if (a==b) { a=a+1; x=x+c; }
else { a=a+1; x=x+d; d=d-1; }
D)if (a==b) { a=a+1; x=c; }
else { a=a+1; d=d-1; x=d; }
2、为了避免嵌套的条件语句if-else的二义性,C语言规定:else与正确的。
A)缩排位置相同的if
B)其之前最近尚未匹配的if
C)其之后的if
D)同一行上的if
3、下列关于switch与break语句的描述中,只有A)break语句是switch语句的一部分
B)在switch语句中可以根据需要使用或不使用break语句
C)在switch语句中必须使用break语句
[正确答案: B]是正确的。
[正确答案: B]是[正确答案: A]。
D)以上3个描述有2个是正确的
4、下面if(a>b) s=a+b;
else s=a-b;
A
switch(a>b)
{
case 1:s=a+b;break;
case 0:s=a-b;break;
}
B
switch(a>b)
{
case 1:s=a+b;
case 0:s=a-b;
}
C
switch(a
{
case 1:s=a-b;
case 0:s=a+b;
}
D
switch(a
{
case 1:s=a-b;break;
case 0:s=a+b;break;
}
5、下列程序段运行完成后将输出的结果是#include
int main(void)
{
int a=0, b=0, c=0, x=0;
if(a) b--;
else if(b)
if(!c) x=3;
else x=4;
printf( "x=%dn", x);
return 0;
}
A)x=-1
B)x=0
[正确答案: B]。
[正确答案: A]语句与下列if语句等价。
C)x=3
D)x=4
6、下列程序运行时输入58 98 18后,程序的运行结果是#include
int main(void)
{
int a,b,c,x,y;
scanf("%d%d%d",&a,&b,&c);
x = a>c ? a : c;
y = b>c ? b : c;
if (a>b)
printf("%d,%d,%dn",x,a-x+y,b+c-y);
else
printf("%d,%d,%dn",y,b-y+x,a+c-x);
return 0;
}
A)58,98,18
B)98,58,18
C)18,58,98
D)18,98,58
7、执行以下代码段后,a的值为int a=1,b=2,c=3;
if(a>b) a=b;
if(a>c) a=c;
A)1
B)2
C)3
D)不确定
8、执行以下程序段后,a,b,c的值分别是int a,b=100,c,x=10,y=9;
a=(--x==y++)?--x:++y;
if(x<9)b=x++; c=y;
A)9,9,9
B)8,8,10
C)9,10,9
D)1,11,10
9、设有定义int x=99; 请写出以下程序段的输出结果if( x==99)
printf(“$$”);
else
[正确答案: B]。
[正确答案: B]。
[正确答案: A]。
[正确答案: B]。
printf(“@@”);
printf(“00”);
A)$$
B)$$00
C)$$@@
D)$$@@00
10、if…else中为避免嵌套出现二义性,C规定else子句总与下列句相匹配。
A)其之前最近的if语句
B)其之前最近且尚未配对的if语句
C)缩排位置相同的if语句
D)其之后最近的if语句
11、已知 int x=1, y=0; 执行下面程序段后,y的值为if(x) { if (x>0) y=1; } else y = -1 ;
A)-1
B)0
C)1
D)不确定
12、已知 int x=1, y=0, w ; 执行下面程序段后,w的值为if(x) if(y) w=x&&y; else w=y;
A)0
B)-1
C)1
D)不确定
13、设有int a=70; 写出下列语句的运行结果if ( a>=60 )
if (a>=80)
printf("Very Good");
else
printf("Good");
else
if (a>=40)
printf("Bad");
else
printf("Very Bad");
A)Good
B)Very Good
C)Bad
D)Very Bad
14、在C语言中,根据一个表达式的值转向多个分支的语句是[正确答案: B]。
[正确答案: A]。
[正确答案: A]。
[正确答案: C]。
[正确答案: B]if语
A)if-else语句
B)switch语句
C)case语句
D)return语句
15、设有int n=60; 下列语句的运行结果是switch (n/10)
{
case 6: printf("@"); break;
case 5: printf("#");
default: printf("$");
}
A)@
B)#$
C)$
D)@#$
[正确答案: A]。
二、循环结构
1、在C语言中,表示循环的一组语句是A)for, while, do-while
B)for, while, do-until
C)for, loop, do-loop
D)for, for each, while
2、设有int i; 以下语句中,循环次数为100次的语句是A)for ( i=0; i<=100; i++ )
B)for ( i=0; i<100; i++ )
C)for ( i=0; i<99; i++ )
D)for ( i=1; i<99; i++ )
3、设有int i=0; 下列语句的运行结果是while (i<=6)
{ printf("%d",i);
i=i+1;
}
A)0123456
B)012345
C)01234
D)0123
4、设有in i; 下列语句的运行结果是[正确答案: C]。
[正确答案: A]。
[正确答案: B]。
[正确答案: A]。
for (i=0;i<5;i++)
printf("%d",i);
A)0123456
B)012345
C)01234
D)0123
5、设有int i=0; 下列语句的运行结果是do {
printf("%d",i);
i=i+1;
} while (i<=5);
A)0123456
B)012345
C)01234
D)0123
6、设有char ch; 下列语句的运行结果是for(ch='B';ch<='F';ch++)
putchar(ch);
A)ABCDEFG
B)ABCDEF
C)BCDEF
D)BCDEFG
7、下面程序不是无限循环的是A)for (;2>=0;);
B)while (3/5,3+5);
C)for (;'0';);
D)while (1);
8、若有int i;,则以下循环的执行次数是for (i=2;i==0;) printf("%d",i--);
A)0次
B)1次
C)2次
D)3次
9、循环语句中,break的作用是A)终止程序运行
B)结束本次循环
C)从本循环体内跳出
D)跳出子函数
10、执行以下程序段,输出结果是[正确答案: D]。
[正确答案: C]。
[正确答案: A]。
[正确答案: C]。
[正确答案: C]。
[正确答案: B]。
int i;
for (i=0;i<=8;i++)
printf("%d,",++i);
A)0,1,2,3,4,5,6,7,8,
B)1,2,3,4,5,6,7,8,9,
C)0,2,4,6,8,
D)1,3,5,7,9,
11、下面有关循环的正确描述是A)for循环只能用于循环次数已经确定的情况
B)for循环是先执行循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
12、以下程序段循环执行的次数为int k=10;
while(k=0) k=k-1;
A)0
B)1
C)5
D)10
13、以下叙述中正确的是A)break语句只能用在switch语句体中
B)break语句只能用在循环体内
C)continue语句只能用在switch语句体中
D)continue语句只能用在循环体内
14、设有定义 int i,s; 循环语句for(i=1;i<=4;i++)执行完成后,变量i的值是答案: A]。
A)5
B)4
C)3
D)不确定
15、设有定义 int x=10; 请写出下列程序段的输出结果循环执行的次数为:7次
for(;x>0;x=x-1)
{
if(x%3==0)
{ printf(“%d”,x--); continue; }
}
A)741
B)852
[正确答案: C]。
[正确[正确答案: D]。
[正确答案: A]。
[正确答案: D]。
C)963
D)875421
16、设有定义 int x=10; 下列程序段循环执行的次数为for(;x>0;x=x-1)
{
if(x%3==0)
{ printf(“%d”,x--); continue; }
}
A)3
B)6
C)7
D)8
17、语句while(w) … 中的表达式w的等价表示是A)w==0
B)w==1
C)w!=0
D)w!=1
18、语句while(a>b) a--; 等价于A)if(a>b)a--;
B)do{a--}while(a>b);
C)for(a>b)a--;
D)for(;a>b; a--);
19、已知int i=0,x=0; 下面while语句执行时循环次数为while( x || i ) { x ++ ; i ++ ; }
A)3
B)2
C)1
D)0
20、执行语句 x=1; while(++x<7) putchar('*'); 后输出结果是A)*****
B)******
C)*******
D)********
21、C中循环语句while和do …while的主要区别是A)do…while的循环体至少无条件执行一次
B)while的循环控制条件和do…while的循环控制条件的控制条件的控制方式是相反的
C)do …while允许从外部转到循环体内,while不允许
D)while的循环体不能复合语句
[正确答案: A]。
[正确答案: A]。
[正确答案: D]。
[正确答案: D]。
[正确答案: C]。
[正确答案: C]次。
22、若有以下程序段:
for(m=1;m<=100;m++)
{
scanf("%d",&y);
if(y<0)
continue;
printf("%d",m);
}
则下面正确的说法是A)当y<0时整个循环结束
B)当y>=0时什么也不输出
C)printf语句永远也不执行
D)最多输出100个非负整数
23、语句“while(!x)…”等价于A)while(x==0)…
B)while(x!=1)…
C)while(x!=0)…
D)while(x==1)…
24、下面的程序执行后,a的值为#include
int main(void)
{
int a,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=20) break;
if(b%3==1)
{ b+=3;continue;}
b-=5;
}
printf("%dn",a);
return 0;
}
A)7
B)8
C)9
D)10
25、以下程序段的输出结果是int x=3;
do{
[正确答案: C]。
[正确答案: B]。
[正确答案: A]。
[正确答案: D]。
printf("%3d ",x-=2);
}while(!(--x));
A)1
B)30
C)1 -2
D)死循环
三、函数
1、一个C语言程序的基本组成单位是A)主程序
B)子程序
C)函数
D)过程
2、在C语言中,表示结束当前函数的语句是A)return语句
B)break语句
C)continue语句
D)end语句
3、已知函数abc的定义为void abc ( )
{ ....... }
则函数定义中void的含义是
A)执行函数abc后,函数没有返回值
B)执行函数abc后,函数不再返回
C)执行函数abc后,可以返回任意类型
D)以上三个答案全是错误的
4、设有下列变量说明与函数说明,则合法的函数调用语句是int func( int a[], int n );
int a[10], n, x;
A)func( a, n ) = x;
B)x = func( a, n );
C)x = func( a[], n );
D)x = func( a[10], n );
5、下列选项中合法的函数说明语句是A)double func( int a, int b );
B)double func( int a, b );
C)double func( a, int b );
[正确答案: A]。
[正确答案: B]。
[正确答案: A]。
[正确答案: A]。
a[正确答案: C]。
D)double func( a, b );
6、选出下面函数定义中正确的形式A)double fun(int x, int y)
{
z=x+y; return z;
}
B)int fun(int x, y)
{
int z; z=x+y; return z;
}
C)fun (int x, int y)
{
int x,y; double z; z=x+y; return z;
}
D)double fun(int x, int y)
{
double z; z=x+y; return z;
}
7、设有说明int n; char str[80];与函数调用:n=hex2dec(str); 则函数hex2dec正确的函数说明应该是[正确答案: A]。
[正确答案: D]。
A)int hex2dec(char str[]);
B)void hex2dec(char str[]);
C)int hex2dec(char str);
D)void hex2dec(char str);
8、C语言中规定函数返回值的类型由A)return语句中的表达式类型决定
B)调用该函数时的主调函数类型所决定
C)调用该函数时系统临时决定
D)在定义该函数时所指定的函数类型所决定
9、以下不正确的说法是[正确答案: D]。
[正确答案: D]。
A)在不同函数中可以使用相同名字的变量
B)形参是局部变量
C)在函数内定义的变量只在本函数范围内有效
D)在函数内的复合语句中定义的变量在本函数范围内有效
10、有一个如下定义的函数:
func(int a)
{
printf("%d",a);
return a;
}
则该函数值的类型是A)整型
B)void类型
C)没有返回值
D)无法确定
[正确答案: A]。
1、若有以下的定义:int t[3][2];则 t数组最后一个元素是A)t[3][2]
B)t[2][3]
C)t[2]
D)t[2][1]
2、设有double x; char s[50]; 输出双精度浮点数x和字符串s,正确的语句是答案: A]。
A)printf("%lf %s",x,s);
B)printf("%ld %s",x,s);
C)printf("%lf %s",&x,s);
D)printf("%lf %s",x,s[50]);
3、已知一个字符串的最大字符长度为8,要使用字符数组str存放该字符串,以下哪种定义是正确的[正确答案: A]。
A)char str[9];
B)char str[8];
C)char str;
D)char str(9);
4、设有char str[80];语句,则下列输入字符串的语句中正确的是A)scanf("%s",&str);
B)scanf("%s",str[80]);
C)scanf("%s",str);
D)scanf("%s",str[0]);
5、以下字符串定义与赋值中,正确的是A)char s[80]; s = {'A', 'B', 'C'};
B)char s[80]; s = "ABC";
C)char s[80] = {"A", "B", "C"};
D)char s[80] = "ABC";
6、设有变量定义char str[80]; 下列从键盘输入到数组变量str中。
A)printf("%s",str);
[正确答案: B]语句能将字符串“shanghai 2011”[正确答案: D]。
[正确答案: C]。
[正确[正确答案: D]。
B)gets(str);
C)scanf("%s",str);
D)puts(str);
7、下面程序段的运行结果是char c[ ]="tv0willn";
printf("%d",strlen(c));
A)3
B)9
C)12
D)13
8、以下程序的输出结果是int main(void)
{
int i,x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
printf("%d,",x[i][2-i]);
return 0;
}
A)1,5,9,
B)1,4,7,
C)3,5,7,
D)3,6,9,
9、以下一维数组定义中,正确的是A)int a[5] = { 1,2,3,4,5 };
B)int a[5] = 1,2,3,4,5;
C)int a[1 to 5];
D)int a[];
10、以下能正确定义整型二维数组a的语句是A)int a[ ][3];
B)int a[ ][3]=2{2*3};
C)int a[ ][3]={{1},{2},{3,4}};
D)int a[2][3]={{1},{2},{3,4}};
11、设有定义:int i, a[10]; 以下能正确输入a数组各元素的语句是A)i=10; scanf(“%d”, &a[i]);
B)for(i=0; i<10; i++) scanf("%d", &a);
C)for(i=0; i<10; i++) scanf("%d", &a[i]);
D)for(i=0; i<=9; i++) scanf("%d", a+i);
12、设有定义:int a[10]={6,7,8,9,10};请选出该定义的正确解释[正确答案: B]。
[正确答案: C]。
[正确答案: C]。
[正确答案: A]。
[正确答案: C]。
[正确答案: A]。
A)将5个初值依次赋给a[1]~a[5]
B)将5个初值依次赋给a[0]~a[4]
C)将5个初值依次赋给a[6]~a[10]
D)将5个初值依次赋给a[5]~a[9]
13、设有定义:char s[20]; 则在下面表达式中错误表示s[1] 的地址的是A)s+1
B)++s
C)&s[0]+1
D)&s[1]
[正确答案: C]。
14、设有定义int a[4][3]; 则以下叙述不正确的是A)定义了一个名为a的二维数组
B)a数组共有12个元素
C)a数组的行下标为1~3,列下标为1~4
D)a数组中的每个元素都为整数
15、设有定义int a[4][3]; 则对该数组元素引用形式正确的是A)a[2+1][1-1]
B)a[2,3]
C)a[4][3]
D)a[2+1,2]
[正确答案: C]。
[正确答案: A]。
版权声明:本文标题:C语言基础题及答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1702714094h427794.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论