C语言 有答案

更新时间:2023-12-02 08:36:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

? 1. C语言程序由( A)组成。

A. 函数 B. 主程序和子程序 C. 子程序 D. 过程

? 2.一个C程序的执行是从 A

A.本程序的main函数开始,到main函数结束

B.本程序文件的第一个函数开始,到本程序的最后一个函数结束 C.本程序的main函数开始,到本程序的最后一个函数结束 D.本程序文件的第一个函数开始,到本程序main函数结束

? 3. 计算机能够直接执行的程序是( D) A 源程序 B 目标程序 C 汇编程序 D 可执行程序

4. 关于C语言数据类型的叙述,正确的是( C ) A 字符数据类型不是基本类型 B 数组不是构造类型

C 变量必须先定义后使用 D 以上答案都不对

? 5. 若有定义语句:int k1=10,k2=20;执行表达式

(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值为(),表达式的值为( B)

A、0和1 ,0 B、0和20 ,0 C、10和1 ,0 D、10和204,1

? 6. 若a是数值类型,则逻辑表达式(a= =2)||(a!=2)的值是( A) A、1 B、0 C、 2 D、不知道a的值,无法确定

? 7. 若有以下语句,则正确的描述是( B )

char x[ ] = “Hello”; char y[ ] = {’H’,’e’,’l’,’l’,’o’}; A、 x数组和y数组的长度相同 B、 x数组的长度大于y数组的长度

C 、x数组的长度小于y数组的长度 D、 x数组等价于y数组

? 8. 若int *P [3];其中P的含义是 ( D ) A. 3个指向整型变量的指针

B. 指向3个整型变量的函数指针

C. 一个指向具有3个整型元素组成的一维数组的指针

D. 具有3个指针元素的指针数组名,每个元素都指向整型变量

? 9. 若有以下定义,则不能表示a数组元素的表达式是 ( D )

int a[5]={1,2,3,8,6},*p=a;

A. *(p+1) B. a[1] C. *a D. a[5]

? 10已知整型变量a=6,字符型变量ch='A', 则表达式ch+a的值

为 D

A a+A B 7 C 65 D71

? 11.下列数据中,为字符串常量的是( B ) 。

A ‘A’ B\house\ C How do you do. D ? $abc?

? 12.以下选项中不合法的用户标识符是(C)。 A.abc B. f C. 3ab D.PRONTF

? 13. 设有int x=1 ;则表达式(x+2/3)的值是(A )。 A.1 B. 2 C. 0 D.1.0

? 14.假设变量a,b均为整型,表达式(a=5,b=2 ,a+b)的值是( A)。 A 7 B 8 C 5 D 2

? 15. 在调用函数时,如果实参是简单变量,它与对应形参之间

的数据传递方式是( B )。

A 地址传递 B 单向值传递

C 传递方式由用户指定 D由实参传给形参,再由形参传回实参 16.设a,b,c都是变量,且a=3,b=4,c=5,则以下表达式值为0的表示式? 22. 在下列运算符中,优先级最高的运算符是( C ) A.= = B.!= C.% D.||

23. 有如下程序,该源程序执行后,屏幕上显示( C )。 void main() {

是(D)

A a&&b B a<=b C a ||b+c&&b D (a

17.已知整型变量a=6,字符型变量ch='A', 则表达式ch+a的值为 D A a+A B 7 C 65 D71

? 18 赋值表达式和赋值语句的区别在于有无(A)。 A 分号 B逗号 C 等号 D花括号

19.若有下列定义,则对a数组元素地址的正确引用是(C)。

int a[5],*p=a;

A:*(p+4) B:* a[4] C:a+2 D:&a[5]

? 20.int a=1,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为(B).

A:1 B:2 C:3 D:不一定 ? 21. 若有以下类型说明语句: char w; int x; float y; double z;

则表达式w*x+z-y的结果为___B__类型。 A、float B、double C、int D、char

int a; float b; a=4; b=10.2

printf(\ }

A. a=%d,b=%f\\n B. a=%d,b=%f C. a=4,b=10.20 D. a=4,b=10.2

? 24. 表示数学关系x<=y<=z的c语言表达式为( A )。 A. (X<=Y)&&(Y<=Z) B. (X<=Y)AND(Y<=Z) C. (X<=Y<=Z) D. (X<=Y)&(Y<=Z) ? 17. 嵌套的条件分支语句 if——else中的else总是与( C ) 组

成成对关系。

A. 缩排位置相同的 B. 在其之前未配对的if C. 在其之前未配对的最近的if D. 在同一行上的if

? 25. 设有如下程序段,下面描述中正确的是( C )。 int k=10; while(k=0) k=k-1;

A. 循环执行一次 B. 循环是无限循环

C. 循环体语句一次也不执行 D. 循环体语句执行一次

? 26.设a = 1,b = 2,c = 3,d = 4,则表达式: a

? 28. 以下不能正确进行字符串赋初值的语句是( A) A char str[5]=\ B char str[]=\

C char *str=\ D char str[5]={ 'm', 'a', 'i', 'l'};

? 29. 在C程序中有如下语句:char max(int x,int y); 它

是( C )。

A. 对函数max的定义 B. 对函数max的调用。 C. 对函数max的原型声明 D. 不合法的

? 30. 在调用函数时,如果数组作函数实参,它与对应形参数组

之间的描述不正确的是( A )。

A 传递地址 B 类型应该一致

C 占不同的存储空间 D形参数组可以不指定其大小

? 32. 已知指针p的指向如图所示,则执行*p++;后, *p的值

是 B

A. 20 B. 30 C. 21 D. 31

? 33. 从循环体内某一层跳出,继续执行循环外的语句是( B )。 A. return语句 B. break语句 C.continue语句 D. 空语句。

? 35.int a,b;b=(a=3*5,a*4,a*5); printf(\ B

A:60 B:75 C:65 D:无确定值

? 36 C语言中,形参的缺省的存储类说明是(A) A. auto(自动) B. static C.register D. extern

37 在一个C语言源程序文件中,要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是(B) A. extern B. static C.register D. extern

? 38. 以下程序的输出结果是(B) 。 #include void main()

{char str[ ]=“ABCD“,*p=str; printf(“%d\\n”,*(p+4));

A. 68 B. 0

C.67 D. 不确定

39.下列数据中,不合法的C语言实型数据的是( C )。 A. 0.123 B. 123e3 C. 2.1e3.5 D. 789.0

40.若有定义:int a=7; float x=2.5, y=4.7; 则表达式: x+a%3*(int)(x+y)%2/4的值是( A )。 A. 2.500000 B. 2.7500000 C. 3.500000 D. 0.000000

41.下面程序的输出结果是( B )。 main()

{

int a=-1, b=4, k;

k=(a++<=0)&&(!(b--<=0)); printf(\ }

A. 1,1,2 B. 1,0,3 C. 0,1,2 D. 0,0,3

42.以下程序的输出结果是 ( A )。 #include main() { int i;

for(i=1;i<=5;i++) if(i%2= =1) printf(\ else continue; printf(\ printf(\ }

A. ***#$ B. #*#*#*$ C. *#*#*#$ D. **#*$

43.下列程序运行后的输出结果是 _______C_____ #define f(x) x*x main(){

int a=6,b=2,c; c=f(a+b)/f(b);

printf(“%d\\n”,c); }

A.5 B.16 .C.20 D.18 44 阅读以下程序: main( ) { int x;

for(x=5;x>0;x--)

if (x--<5) printf(\ else printf(\ } 程序运行后的输出结果是( B )。 A. 4,3,2 B. 4,3,1, C. 5,4,2 D. 5,3,1,

45.运行下面的程序,如果从键盘上分别输入6和4,则输出结果是( main( A) { int i,x;

for(i=0;i<2;i++) { scanf(\

if (x++>5) printf(\ else printf(\ } }

A. 7和5 B. 6和3 C. 7和4 D. 6和4 46.有如下程序 main( ) { int x=23; do

{ printf(\ while(!x); }

该程序的执行结果是( B )。 A. 321 B. 23

)。 C.不输出任何内容 D.陷入死循环

47 下列程序运行后的输出结果是___56,98___。 void swap(int x,int y) {

int temp; temp=x; x=y; y=temp; }

void main() {

int a=56,b=98;

if(a

printf(“\\n%d,%d\\n”,a,b); }

? 下列程序运行后的输出结果是__60__。 ? #include ? f(int b[],int n) ? {

? int i,r; ? r=1;

? for(i=0;i<=n;i++) r=r*b[i]; ? return r; ? }

? main() ? {

? int x,a[]={3,4,5,6,7,8,9}; ? x=f(a,2); ? printf(“%d\\n”,x); ? } ?

?

? 填空题

1. 结构化程序设计所规定的3种基本控制结构是顺序结构、选择结构, 和循环结构。

由C语言系统所提供的库函数的调用形式是______函数名(参数表)________

二维数组的数组元素也称为___________。

2. 设x=3,那么表达式y=(--x)+(x--)的结果为____4______ 3. 有如下输入语句:scanf(“%d, %d, %d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是____ 1,2,3 。

? 4. 要输出一个字符串数据,要用到的格式字符是%S ;要输

出一个长整形数据,要用到的格式字符是%Ld。

? 5. 数组 int a[n];则a数组中可用最小下标值是 0 ,最大下标值是 n-1 。

? 6. 若有int a[3]={10,12,30}; int *p=a;则a+1 ? 是 a[1] 的地址,*(p+2)= a[2] 。

? 7. 若自定义函数要求返回一个值,则应在该函数体中有一条 return语句,若自定义函数不要求返回值,则应在该函数说明时加一个类型说明符 void 。 ? 8. 若有定义:char ch;

(1)使指针p指向ch的定义语句是 。 (2)使指针p指向ch的赋值语句是

(3)通过指针p给变量ch赋值?a?的语句是 (4)通过指针p输出变量ch中的字符的语句是

? 9. int m=5,y=2;则表达式y- =m*=y的值为____-8___。 ? 10. C语言中的数组必须先 定义 ,然后使用。

switch(k) {case 8:k+=1; case 9:k+=1;

case 10:k+=1;break; default:k+=1;}

? 11. 如果int x=10,y=10 ;--x的值是__9_, y++的值是 __10__。

? 12. C程序运行的步骤按顺序为,编写源程序,然后经过_编辑_转换成计算机能够识别的二进制目标文件(.obj文件),然后经 过___链接___生成可执行文件(.exe文件) ?

? 程序阅读 ? ?

? 1. 以下程序的输出结果是 2,0 。 #include void main()

{ int x=1,y=2,t=0; if(x= =y) t=x; x=y; y=t;

printf(\,x,y); }

? 2. 以下程序的输出结果是 11 。

#include void main() { int k=8;

printf(\); }

? 3. 以下程序的输出结果是 65、66、67、68、69 。#include void main() { char a;

for(a=0;a<5;a++) { putchar(a+?A?); } printf(\; }

? 5. 以下程序的输出结果是 2 。 #include void main() {int a,b,c=240; a=c/100%9; b=(-1)&&(-1);

printf(“%d%d\\n”,a,b);

}

? 6. 以下程序的输出结果是 3 。 #include void main()

{ int a=2,b=-1,c=2; if(a

if(b<0) c=0;

else c+=1;

printf(“%d\\n”,c);}

? 7、以下程序的输出结果为___e____, __5____。(提示:字符?0?

的ASCII为48,’a’ 的ASCII为97,e的ASCII为101,?5?的为53)

#include void main() { char c1=?5?,c2=?0?;

printf(“%c, %d\\n”,c1+c2,c1-c2); }

? 8、有以下程序段: void main() {

int a[5]={1,2,3,4,5}, b[5]={0,2,1,3,0}, i , s=0; for(i=0;i<5;i++) s=s+a[ b[i] ]; printf(“%d\\n”,s);

}程序运行后的输出结果为____________

? 9. 以下程序的输出结果是 。 void main() {

int i, n[ ]={0,0,0,0,0}; for(i=1;i<4;i++) {

n[i]=n[i-1]*3+1; printf(“%d”,n[i]); }

printf(“\\n”); } 编程题

? 1、试编程判断输入的正整数是否既是5又是7的正倍数。若

是,则输出yes;否则输出no。

? 2、编写摄氏温度、华氏温度转换程序。要求:从键盘输入一

个摄氏温度,屏幕就显示对应的华氏温度,输出取两位小数。转换公式:F=(C+32)×9/5 。

2输入一个字符,判断它是否是小写字母,如果是,将它转换成大写字母;如果不是,不转换。然后输出最后的字符对应的ASCII码。

本文来源:https://www.bwwdw.com/article/muvt.html

Top