C语言综合习题及答案

合集下载

C语言考试习题及答案

C语言考试习题及答案
第一章 C语言程序设计概述习题
1. C语言程序的基本结构是【 】。 A) 函数 B) 语句 C) 字符 D) 程序行 2. 下列四个叙述中,正确的是【 】 A)在C程序中,主函数必须位于其他函数的最前面 B)在C程序中,一行只能写一条语句 C)C程序的基本结构是程序行 D)C语句是完成程序功能的最小单位 3. C语言规定,在一个C程序中,main()函数的位置是【 】 A) 必须在开始 B) 必须在最后 C) 可以任意 D) 必须在系统调用的库函数之后 4. 以下叙述中,正确的是【 】 。 A) C语言程序总是从第一个定义的函数开始执行 . B) C语言程序中,要调用的函数必须在main()函数中定义 C) C语言程序总是从main()函数开始执行 D) C语言程序中的main()函数必须放在程序的开始部分 5. 在C语言提供的合法的关键字是【 】 A) switch B) cher C) Case D) FLOAT 6. 以下用户标识符,其中合法的是【 】 A) For B) 4d C) f2.G3 D) _f#
A)4 B) –4 C) 1 D) 0 7. 设int a,b;则表达式a=2,b=++a*2的值为【 】。 A)6 B) 4 C) 8 D) 2 8. 列四组数据类型中,C语言允许的一组是【 】 A) 整型、实型、逻辑型,双精度型 B) 整型、实型、字符型,无值类型 C) 整型、双精度型、布尔型,无值类型 D) 整型、实型、复型、字符型 9. 以下能正确定义变量a, b和c并为它们赋值的语句是【 】 A) int a=5; b=5; c=5; B) int a,b,c=5; C) a=5,b=5,c=5; D) int a=5, b=5, c=5; 10. C语言所提供的五种基本数据类型包括:字符型、整型、双精度 型、浮点型和【 】。 A) 指针型 B) 结构型 C) 数组型 D) 无值类型 11. 设变量a为整型,f为实型,i为双精度型,则表达式10+‘a’+i*f 的 数据类型是【 】。 A) int型 B) float 型 C) double型 D) 不确定 12. 若有定义: int x=3, y=2; float a=2.5, b=3.5; 则表达式 (x+y)%2+(int)a/(int)b的值是【 】。 A) 0 B) 2 C) 1.5 D) 1 13. 若d为double型, 表达式 d=1, d+5, d++ 的值是【 】。 A) 1 B) 6.0 C) 2.0 D) 1.0 14. 设int a=1, d=4;float b=2.0, c=3.0, 则表达式: a+b*c-d%2 的值 是【 】。 A) 5 B) 6 C) 5.0 D) 6.0 15. 下列运算符中,优先级最高的是【 】。 A) * B) ++ C) + D) /= 16. 若希望当整型变量A的值为5时, 表达式的值为1, 则下面不能满足 要求的表达式是【 】。 A) A/2-1 B) A%2 C)(A-2)/2 D) (A+3)%2 17. a、b均为整数, 且b≠0, 则表达式 a/b*b+a%b的值是【 】。 A) a B) b C) a被b除的余数部分 D) a被b除商的整数部 分 18. 设x、y、z、s均为int型变量,且初值均为1,则执行语句s=(++x)+ (++y)-(++z);后, s的值为【 】。

C语言习题集(含答案)

C语言习题集(含答案)

一、单选题:(1)在C语言提供的合法的关键字是( )A)swicth B) cher C)Case D)default(2)在C语言中,合法的字符常量是()A)’\084’ B) ’\x43’C)’ab’D) "\0”(3)若有定义和语句:char s[10]: s="abcd”;printf(”%s\n",s);则结果是(以下u代表空格)()A)输出abcd B)输出aC)输出abcduuuuu D)编译不通过(4) 若有定义和语句:int **pp, *p,a=10, b=20;pp=&p;p=&a; p=&b; printf("%d,%d\n",*p,**pp);则输出结果是:()A)10,20 B)10,10 C)20,10 D)20,20(5)若有以下定义和语句:int u=010,v=0x10,w=10;printf("%d,%d,%d\n”,u, v, w);则输出结果是()A) 8,16,10B)10,10,10 C)8,8,10 D) 8,10,10 (6) 若有以下定义和语句char c1=' b', c2='e’;printf(”%d,%c\n", c2-c1,c2—'a’+”A");则输出结果是( )A)2,M B)3,EC)2,E ?D)输出项与对应的格式控制不一致,输出结果不确定(7)若有以下定义:char s[20]=”programming”,*ps=s;则不能代表字符o的表达式是( )A)ps+2 B) s[2]C) ps[2]D) ps+=2,*ps(8)若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是() for (i=5; i; i—-)for(j=0;j<4; j++){。

}A) 20B) 25 C)24 D) 30(9)若有以下定义和语句:char *s1=”12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));则输出结果是()A)4B)5 C)9 D)10(10)若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是()A) *p B) a[10]C)*a D)a[p-a](11)下面程序的输出是()main(){char *s=”121";int k=0,a=0,b=0;do{k++;if(k%2==0) {a=a+s[k]—’0’;continue;}b=b+s[k]—’0';a=a+s[k]—'0';}while (s[k+1]);printf("k=%d a=%d b=%d\n",k,a,b);A) k=3 a=2 b=3 B) k=3 a=3 b=2C)k=2 a=3 b=2D) k=2 a=2 b=3(12) 下面程序的输出是( )main(){ unsigned a=32768;printf("a=%d\n”,a);}运行结果: —32768A)a=—32768 B)a=32767C)a=-32767 D)a=—1(13) 若有以下定义:float x; int a,b; 则正确的switch 语句是( )A)switch(x) B) switch(x){case1.0:printf("*\n”);{case1, 2:printf(”*\n”);case2。

计算机c语言综合试题及答案

计算机c语言综合试题及答案

计算机c语言综合试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中的基本数据类型?A. intB. floatC. charD. string答案:D3. 在C语言中,以下哪个运算符用于比较两个值是否相等?A. ==B. !=C. <=D. >=答案:A4. C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A5. 在C语言中,以下哪个关键字用于声明一个函数?A. functionB. defC. voidD. int答案:C6. C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. int array[10] = {0};D. All of the above答案:D7. 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. _variableD. All of the above答案:D8. 在C语言中,以下哪个选项是正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>D. #include "stdio.h"答案:A9. C语言中,以下哪个选项用于定义一个无限循环?A. while(1)B. for(;;)C. do whileD. All of the above答案:D10. 在C语言中,以下哪个关键字用于声明一个指针?A. pointerB. ptrC. *D. ref答案:C二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个宏。

汇文C语言综合练习题及详解(1)

汇文C语言综合练习题及详解(1)

综合练习题一、从下列四个供选择的答案中选出正确的一个答案1、语句printf(“%%d%d”, 123); 将输出:A) %123%d B) %%d123 C) %d123 D)上述语句语法有错“%%”格式表示输出一个“%”。

2、执行下列程序段后, a值为:int a, b;a=15; b=12;a=(a-- ==b++)? a%5 : a/5;A) 0 B) 2.8 C ) 4 D) 2先计算a--==b++的值:a--的值为15,执行后a=14;b++的值为12,执行后b=13;15==12为假执行a/5即14/5值为2结果: a = 23、判断字符变量c的值为数字(’0’---’9’)则返回1,否则返回0, 可用表达式:A) ‘0’<=c<=‘9’ B) ‘0’<=c && c<=‘9’C) ‘0’<=c || c<= ‘9’ D)以上均不是4、对于int x, y; 语句if (x<0) y= -1; else if (!x) y=0; else y=1; 等价于:A) y=0; if (x>=0) if (x) y=1; else y= -1;B) if (x!=0) if (x>0) y=1; else y= -1; else y=0;C) if (x<0) y= -1; if (x!=0) y=1; else y=0;D) y= -1; if (x!=0) if (x>0) y=1; else y=0;语句if (x<0) y= -1; else if (!x) y=0; else y=1; 等价于:if (x < 0)y = -1;else {if (!x)y = 0;elsey = 1;}即:-1 x < 0y = 0 x = 01 x > 05、循环for(i=0, j=5; ++i!=--j; ) printf(“%d %d”, i, j); 将执行A) 6次B) 3次C) 0次D) 无限次i = 0, j = 5, (++i→1) != (--j→4) 成立: i = 1, j = 4i = 1, j = 4, (++i→2) != (--j→3) 成立: i = 2, j = 3i = 2, j = 3, (++i→3) != (--j→2) 成立: i = 3, j = 2……6、下列程序段执行后s值为:int i=5, s=0;do if (i%2) continue; else s+=i; while (--i);A) 15 B) 9 C) 6 D) 以上均不是写成规范形式:doif (i % 2)continue;elses += i;while (--i);i = 5, s = 0: i % 2 = 1: i = 4i = 4, s = 0: i % 2 = 0: s = 0 + 4 = 4; i = 3i = 3, s = 4: i % 2 = 1: i = 2i = 2, s = 4: i % 2 = 0: s = 4 + 2 = 6; i = 1i = 1, s = 6: i % 2 = 1: i = 08、对于以下宏定义:#define SQ(x) x*x#define DD(x,y) SQ(x)-SQ(y)宏调用DD(2*3, 2+3)执行后值为:A) 43B) 11 C) 25 D) 以上均不是DD(2*3,2+3)→SQ(2*3)-SQ(2+3)→2*3*2*3-2+3*2+3→4311、语句if (a>b) k=0; else k=1; (int a, b, k) 等价于:A) k=(a>b)?1:0; B) k=a>b; C) k=a<=b;D) 以上均不是12、对于int i; char c, s[20];从输入序列123ab45efg中将123读入i; ’ b’读入c; “45efg”读入s, 则scanf语句应写为: *跳过数组名是地址A) scanf(“%da%c%s”, i, c, s) B) scanf(“%d%*c%c%s”,&i, &c, s);C) scanf(“%da%c%s”, &i,&c,&s) D) scanf(“%d%c%c%s”, &i, &c, s);15、对于以下递归函数f, 调用f(4),其返回值为:(终止条件)int f(int n){ return f(n-1)+n; }A) 10 B) 11 C) 0 D) 以上均不是17、如下程序段:int c[]={1, 7, 12};int *k;k=c;printf("next k is %d",*++k);(地址跳一个单元)其输出应为:A) 2 B) 7 C) 1 D)以上均不对21、执行 i=3; if(i>3) if ( i<4 ) i=1 else i=2; 后i 的值应为:A) 1 B) 2 C) 3 D) 语句错误22、执行下列程序:#define MA(x, y) ( (x)*(y) )i=5;i=MA(i,i+1)-7;后变量i 的值应为:A) 30 B) 19 C) 23 D) 1MA(i,i+1)-7→ ((i) * (i+1)) – 7→ (5 * 6 ) – 7→ 2323、执行下列程序:int i, j;i = 3/2 + 7/2 == 5;j = 45 % 11 + (((7>8) ? 14:21) == 14);后变量i,j 的值应为:A) i=0 j=1 B) i=1 j=1C) i=0 j=2 D) i=1 j=2i = ((3/2 + 7/2) == 5) = ((1+3) == 5) = (4 == 5) = 0;j = 1 + (21 == 14) = 1 + 0 = 125、如果 int i=16, j=23 ; 执行 printf("%x--%o",i, j)后输出为:(--)格式扶A) 10--23 B) 10--27 C) 16--23 D) 16--2726、执行下列程序:c[0]c[1]c[2]#define MA(x, y) (x)*(y)int i = 2;i = 3/MA(i, i+1)+5;printf(“%d\n”, i);其输出应为:A) 5 B) 8C) 0 D) 以上都错3/MA(i,i+1)+5→3/(i)*(i+1)+5→3/2*3+5→827、有一函数:int f(int a) {auto int b = 0;static int c = 3;b = b+1;c = c+1;return(a+b+c);}如果有int i, j; 则执行两次调用:i=f(2); j=f(2) 后, i, j值为:A) i = 7, j = 7 B) i = 7, j = 8C) i = 8, j = 7 D) i = 8, j = 8注意静态局部变量static int c;的含义第一次调用f(2):开始时: b = 0, c = 3执行: b = 0 + 1 = 1, c = 3 + 1 = 4;返回: a+b+c=2+1+4=7;调用结束后: 静态局部变量c=4保持不变;第二次调用f(2):开始时: b = 0, c = 4执行: b = 0 + 1 = 1, c = 4 + 1 = 5;返回: a+b+c=2+1+5=8;调用结束后: 静态局部变量c=5保持不变;二、填空题1、用for循环打印1 4 7 10 13 16 19 22 25 , 其语句应为:for (i=1; i<=9; i++) printf(“%3d”, _3*i-2__);2、执行完下列语句段后, i,j值分别为:___355,350__int i, j;j=10*(i=5);i+=j*=i+2;第一条语句执行后: i = 5, j = 50执行第二条语句:i+=j*=i+2→i += (j *= (i+2))→i += (j *= 7)→i += (j = 50*7)→i = 5 + 350 = 355, j = 350(不看)3、执行完下列语句段后, i值为:__5__static int a[3][4]={{1,2,3},{4,5,6}}, i;i= a[0][5];a[0][0] 1 Xa[0][1] 2 X+2a[0][2] 3 X+4a[0][3] ? X+6a[1][0] 4 X+8a[1][1] 5X+10a[1][2] 6 X+12a[1][3] ? X+14a[2][0] ? X+16a[2][1] ? X+18a[2][2] ? X+20a[2][3] ? X+22a[0][5]的地址: X+(0*4+5)*2 = X + 10, 即对应于a[1][1]。

c语言习题及详解答案

c语言习题及详解答案

c语言习题及详解答案C语言是一种广泛使用的编程语言,以其结构化、可移植和高效性而著称。

以下是一些C语言的习题以及相应的详解答案。

# 习题1:求和问题编写一个C程序,输入两个整数,输出它们的和。

解答:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("这两个整数的和是:%d\n", sum);return 0;}```# 习题2:判断素数编写一个C程序,判断一个整数是否为素数。

解答:```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1) return 0;for (int i = 2; i <= sqrt(n); i++) {if (n % i == 0) return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d 是素数。

\n", num);} else {printf("%d 不是素数。

\n", num);}return 0;}```# 习题3:字符串反转编写一个C程序,输入一个字符串,然后输出它的反转。

解答:```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int len = strlen(str);for (int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);reverseString(str);printf("反转后的字符串是:%s\n", str);return 0;}```# 习题4:数组排序编写一个C程序,输入一个整数数组,然后使用冒泡排序算法对其进行排序。

C语言全部章节习题集(参考答案)

C语言全部章节习题集(参考答案)
}
选择结构答案
一、单项选择题
1.B 2.A 3.D 4.C 5.D 6.B 7.C
二、填空题
1. 5 5 4
5 5 4
3 3 4
2. 4 0
3. VeryGood
Good
VeryGood
A. 8 B. 4 C. 2 D. 出错
14、设a=1,b=2,c=3,d=4,则表达式:a<b? a : c<d? a : d的结果为( D )。
A. 4 B. 3 C. 2 D. 1
15、设a 为整型变量,不能正确表达数学关系:10<a<15的 C 语言表达式是( A )。
{ float a,b,temp;
printf("input a and b:");
scanf("%d,%d",&a ,&b);
temp = a; a = b; b = temp;
printf("a=%d , b=%d\n", a , b);
scanf(“%f”,&t);
if(t>=90) ch=’A’;
else if(t>=80) ch=’B’;
24、下列不正确的转义字符是( C )。
A. \\ B. \' C. 074 D. \0
二、填空题:
1、C 语言中的逻辑值“真”是用 1 表示的,逻辑值“假”是用 0 表示的。
2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为 0 。
5、判断变量 a、b 的值均不为 0 的逻辑表达式为a!=0&&b!=0 。

C语言习题集及答案

C语言习题集及答案

目录第一单元程序设计和C语言 (1)第二单元顺序程序设计 (3)第三单元分支程序设计 (7)第四单元循环程序设计 (14)第五单元数组..................................................................... 错误!未定义书签。

第六单元函数 (23)第七单元指针..................................................................... 错误!未定义书签。

第八单元结构体和共用体..................................................... 错误!未定义书签。

第九单元文件..................................................................... 错误!未定义书签。

附加题......................................................................................... 错误!未定义书签。

模拟试卷一................................................................................. 错误!未定义书签。

模拟试卷二................................................................................. 错误!未定义书签。

模拟试卷三................................................................................. 错误!未定义书签。

第一单元程序设计和C语言一、选择题1.C语言的基本构成单位是: A 。

c语言试题及答案

c语言试题及答案

c语言试题及答案C语言试题及答案一、选择题1. 在C语言中,以下哪个是正确的数据类型?A. 整数型B. 浮点型C. 字符型D. 所有选项答案:D2. 以下哪个是C语言中的逻辑运算符?A. &&B. ||C. !D. 所有选项答案:D3. 在C语言中,哪个关键字用于定义一个函数?A. intB. voidC. functionD. return答案:A二、填空题1. 在C语言中,一个基本的程序结构由_____、_____、_____三个部分组成。

答案:预处理指令;函数定义;语句2. 一个C语言程序总是从_____函数开始执行。

答案:main3. 在C语言中,若要实现循环,可以使用_____、_____、_____等循环结构。

答案:for;while;do-while三、简答题1. 简述C语言中数组的定义和使用。

答案:在C语言中,数组是一种数据结构,用于存储具有相同数据类型的元素集合。

数组定义的一般形式为:类型名数组名[常量表达式],其中类型名是数组元素的数据类型,数组名是数组的标识符,常量表达式是数组中元素的数量。

数组的使用包括初始化、访问和修改元素等。

2. 解释C语言中的指针及其作用。

答案:指针是C语言中一种特殊的变量,它存储了另一个变量的内存地址。

指针的主要作用是直接访问和操作内存地址,从而可以更灵活地处理数据。

指针的使用包括指针的声明、指针的初始化、指针的运算等。

四、编程题1. 编写一个C语言程序,实现求两个整数的和。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和是:%d\n", sum); return 0;}```2. 编写一个C语言程序,实现字符串的反转。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言练习题一、选择题1. 一个完整的C源程序是【B 】。

A)要由一个主函数或一个以上的非主函数构成B)由一个且仅由一个主函数和零个以上的非主函数构成C)要由一个主函数和一个以上的非主函数构成D)由一个且只有一个主函数或多个非主函数构成2. 以下关于函数的叙述中正确的是【C】。

A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以定义任意一个函数3. 以下关于函数的叙述中不正确的是【B】。

A)C程序是函数的集合,包括标准库函数和用户自定义函数B)在C语言程序中,被调用的函数必须在main函数中定义C)在C语言程序中,函数的定义不能嵌套D)在C语言程序中,函数的调用可以嵌套4. 在一个C程序中,【B 】。

A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置程序的执行是从【A 】开始的。

A)主函数B)子函数C)从程序第一行D)printf()函数6.以下选项中不合法的标识符是【C 】A)print B)FOR C)&a D)_007.以下选项中可作为C语言合法常量的是【A】A)-80 B)-080 C) D)8.以下选项中不属于字符常量的是【B】A)′C′ B)"C" C)′\xCC′ D) ′\072′9. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【C】A)float B)longC)int D)double10. 以下关于函数叙述中,错误的是【D】。

A)函数未被调用时,系统将不为形参分配内存单元B)实参与形参的个数应相等,且实参与形参的类型必须对应一致C)当形参是变量时,实参可以是常量、变量或表达式D)形参可以是常量、变量或表达式11. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是【D】。

A)参数的形实(哑实)结合B)函数返回值C)全局变量D)同名的局部变量12.若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是【C】A)a[2][!1] B)a[2][3] C)a[1>2][!1] D) a[0][3]13.若有说明: int a[][4]={0,0};则下面不正确的叙述是【D】A)数组a的每个元素都可得到初值0 B)二维数组a的第一维大小为1C)因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1D)有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值014.下列选项中错误的说明语句是【D】A)char a[]={′t′,′o′,′y′,′o′,′u′,′\0′}; B)char a[]={"toyou\0"};C)char a[]="toyou\0"; D)char a[]=′toyou\0′;a1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是A)strcat(a2,a1); B)strcpy(a2,a1);C)strcat(a1,a2); D)strcpy(a1,a2);15. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【C】。

A)实参与其对应的形参共占存储单元B)只有当实参与其对应的形参同名时才共占存储单元C)实参与对应的形参分别占用不同的存储单元D)实参将数据传递给形参后,立即释放原先占用的存储单元16. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【D】。

A)实参将其地址传递给形参,并释放原先占用的存储单元B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参C)实参将其值传递给形参,调用结束时形参再将其值回传给实参D)实参将其值传递给形参,调用结束时形参并不将其值回传给实参17. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是【D】。

A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元18. 若用数组名作为函数调用的实参,则传递给形参的是【A 】。

A) 数组的首地址 B) 数组的第一个元素的值C) 数组中全部元素的值 D) 数组元素的个数19 若函数调用时,用数组名作为函数的参数,以下叙述中正确的是【A】。

A)实参与其对应的形参共用同一段存储空间B)实参与其对应的形参占用相同的存储空间C)实参将其地址传递给形参,同时形参也会将该地址传递给实参D)实参将其地址传递给形参,等同实现了参数之间的双向值的传递20. 如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量【C】。

A)为全局变量,在本程序文件范围内有效B)为局部变量,只在该函数内有效C)为局部变量,只在该复合语句中有效D)定义无效,为非法变量21. C语言中函数返回值的类型是由【D】决定。

A)return语句中的表达式类型B)调用函数的主调函数类型C)调用函数时临时D)定义函数时所指定的函数类型22.有以下程序#include<>main(){ char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′};printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是【B】A) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D) 由于p和q数组中都没有字符串结束符,故长度都不能确定23 定义一个void型函数意味着调用该函数时,函数【C】A)通过return返回一个用户所希望的函数值B)返回一个系统默认值C)没有返回值D)返回一个不确定的值24. 若定义函数float *fun( ),则函数fun的返回值为【B】。

A)一个实数B)一个指向实型变量的指针C)一个指向实型函数的指针D)一个实型函数的入口地址25.下列数组说明中,正确的是【D】A)static char str[]="China";B)static char str[]; str="China";C)static char str1[5],str2[]={"China"}; str1=str2;D)static char str1[],str2[];str2={"China"}; strcpy(str1,str2);26.在C语言程序中,当调用函数时【B】A)实参和形参共用一个存储空间B)实参和形参各占一个独立的存储空间C)由用户指定实参和形参是否共用存储空间D)由系统确定实参和形参是否共用存储空间27. 关于以下fun函数的功能叙述中,正确的是【A】。

int fun(char *s){char *t=s;while(*t++) ;t--;return(t-s);}A) 求字符串s的长度B) 比较两个串的大小C) 将串s复制到串t D) 求字符串s所占字节数21. 下面程序段运行后的输出结果是【B】(假设程序运行时输入5,3回车)int a, b;void swap( ){int t;t=a; a=b; b=t;}main(){scanf("%d,%d", &a, &b);swap( );printf ("a=%d,b=%d\n",a,b);}A) a=5,b=3 B) a=3,b=5 C)5,3 D)3,522. 以下程序运行后的输出结果是【D】。

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);}A) 3 B) 6 C) 8 D) 1223. 以下程序的运行结果是【C】。

void f(int a, int b){int t;t=a; a=b; b=t;}main(){int x=1, y=3, z=2;if(x>y) f(x,y);else if(y>z) f(x,z);else f(x,z);printf("%d,%d,%d\n",x,y,z);}A) 1,2,3 B) 3,1,2 C) 1,3,2 D) 2,3,125有以下程序#include <>int f(int x){ int y;if(x==0||x==1) return(3);y=x*x-f(x-2);return y; }main(){ int z;z=f(3);printf("%d\n",z); }程序的运行结果是【C】A)0 B)9 C)6 D)826.有以下程序void ss(char *s,char t){ while(*s){ if(*s==t)*s=t-′a′+′A′;s++; } }main(){ char str1[100]="abcdd fefdbd",c=′d′;ss(str1,c);printf("%s\n",str1);}程序运行后的输出结果是【B】A)ABCDDEFEDBD B)abcDDfefDbDC)abcAAfefAbA D)Abcddfefdbd26 以下程序运行后的输出结果为【B】。

int *f(int *x, int *y){if(*x<*y) return x;else return y;}main(){int a=7,b=8,*p,*q,*r;p=&a, q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}A) 7,8,8 B) 7,8,7 C) 8,7,7 D) 8,7,827. 以下程序的正确运行结果是【A】。

#inclued<>main(){int k=4,m=1,p;p=func(k,m);printf(“%d”,p);p=func(k,m);pri ntf(“%d\n”,p);}func(int a,int b){static int m=0,i=2;i+=m+1;m=i+a+b;return (m);}A)8,17 B)8,16 C)8,20 D)8,828.有以下程序int fun(int n){if(n==1) return 1;else return(n+fun(n-1));}main(){int x;scanf("%d",&x);x=fun(x);printf("%d\n",x);}程序执行时,若输入10,程序的输出结果是【A】。

相关文档
最新文档