1、A) C=5/9(F-32) B) C=5*(F-32)/9 C) C=5/9*(F-32) D) 三个表达式都正确11逗号表达式(a=3*5,a*4),a+15的值是_C_。A) 15 B) 60 C) 30 D) 不确定12如果int a=1,b=2,c=3,d=4;则条件表达式ab?a:cd?c:d的值是_A _。书103页A) 1 B) 2 C) 3 D) 413已知int i=10;表达式20-0=i=9的值是_B_。A) 0 B) 1 C) 19 D) 2014使用语句scanf(x=%f,y=%f,&x,&y);输入变量x、y的值(代表空格),正确的输入是_C_。(scanf函数
2、是取地址的,所以一定要加上字母。不是int函数)A) 1.25,2.4 2.4 C 15已知int x=(1,2,3,4);变量x的值是_D_。(其实,逗号表达式无非是把若干个表达式“串联”起来,分解开就是:x=1;x=2;x=3;x=4;最终结果是x=4)16已知int i=1,j=0;执行下面语句后j的值是_D_。while(i)switch(i) case 1: i+=1;j+;break;case 2: i+=2;case 3: i+=3;default: i-;A) 1 B) 2 C) 3 D) 死循环17求取满足式 12+22+32+ +n2 1000的n,正确的语句是A_。A)
3、for(i=1,s=0;(s=s+i*i)=1000;n=i+) ; B) for(i=1,s=0;n=+i) ;C) for(i=1,s=0;(s=s+i*+i)n=i) ;D) for(i=1,s=0;(s=s+i*i+)0)&(x4);x+,y- ) ;A) 是无限循环 B) 循环次数不定 C) 循环执行4次 D) 循环执行3次19已知 char a20=Beijing,shanghaitianjinchongqing;语句printf(%c,a30);的输出是_C_。A) B) n C) 不定 D) 数组定义有误20对二维数组的正确说明是_C_。前面的括号内的数字可以省略,但后面的不可
4、以A) int a=1,2,3,4,5,6; B) int a2=1,2,3,4,5,6;C) int a3=1,2,3,4,5,6; D) int a2,3=1,2,3,4,5,6;21对字符数组str赋初值,str不能作为字符串使用的一个是_D_。A) char str=;B) char str=C) char str9=s,hangiD) char str8= 22如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为_A_。A) 静态变量 (全局变量) B) 动态变量(局部变量) C) 外部变量 D) 内部变量23在一个C源程序文件中,若要
5、定义一个只允许在该源文件中所有函数使用的变量,则该变量需要使用的存储类别是_D_。A) extern B) register C) auto(自动变量) D) static(静态变量)24定义一个函数实现交换x和y的值,并将结果正确返回。能够实现此功能的是_C_。A) swapa(int x,int y) B) swapb(int *x,int *y) int temp; int temp;temp=x;x=y;y=temp; temp=x; C) swapc(int *x,int *y) D) swapd(int *x,int *y) int *temp;temp=*x;*x=*y;*y=t
6、emp;25在下列结论中,只有一个是错误的,它是_C_。A) 语言允许函数的递归调用B) 语言中的continue语句,可以通过改变程序的结构而省略C) 有些递归程序是不能用非递归算法实现的 D) C语言中不允许在函数中再定义函数26说明语句int (*p)( );的含义是_C_。A) p是一个指向一维数组的指针变量B) p是指针变量,指向一个整型数据C) p是一个指向函数的指针,该函数的返回值是一个整型(一个变量的指针 即为其地址)D) 以上都不对27设有说明int (*p)4;其中的标识符p是_C_。A) 4个指向整型变量的指针变量B) 指向4个整型变量的函数指针C) 一个指向具有4个整型
7、元素的一维数组的指针D) 具有4个指向整型变量的指针元素的一维指针数组28已知:char s10, *p=s,则在下列语句中,错误的语句是_B_。S是变量,不能赋予确切的值A) p=s+5; B) s=p+s; C) s2=p4; D) *p=s0;29已知:int a43=1,2,3,4,5,6,7,8,9,10,11,12;int (*ptr)3=a,*p=a0;则以下能够正确表示数组元素a12的表达式是_C_。A) *(*(a+1)+2) B) *(*(p+5) C) (*ptr+1)+2 D) *(ptr+1)2)30已知:int a =1,2,3,4,5,6,7,8,9,10,11,
8、12,*p=a;则值为3的表达式是AC_。A) p+=2,*(p+) B) p+=2,*+p C) p+=2,*p+ D) p+=2,+*p32函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此功能的函数是D_。A) funa (int *x, int *y) B) funb (int x, int y) int *p; int t;p=x;*y=*p; t=x;y=t;C) func (int *x, int *y) D) func (int *x, int *y) *x=*y;*y=*x; *x=*x+*y;*y=*x-*y;*x=*x-*y;33有定义如下:st
9、ruct sk int a;float b;data ,*p;如果 p=&data;则对于结构变量data的成员a的正确引用是_B_。A)(*).data.a B) (*p).a C) p-data.a 34已知:struct st int n;struct st *next;static struct st a3=1,&a1,3,&a2,5,&a0,*p;如果下述语句的显示是2,则对p的赋值是_C_。printf(,+(p-next-n);A) p=&a0; B) p=&a1; C) p=&a2; D) p=&a3;35fscanf函数的正确调用形式是_D。A) fscanf (文件指针,
10、格式字符串, 输出列表);B) fscanf (格式字符串, 输出列表, 文件指针);C) fscanf (格式字符串, 文件指针, 输出列表);D) fscanf (文件指针, 格式字符串, 输入列表);36使用fgetc函数,则打开文件的方式必须是_C_。A) 只写 B) 追加 C) 读或读/写 D) 参考答案B和C都正确37已知宏定义#define N 3#define Y(n) (N+1)*n)执行语句z=2*(N+Y(5+1);后,变量z的值是_B_。A) 42 B) 48 C) 52 D) 出错38已知宏定义 #define SQ(x) x*x,执行语句printf(,10/SQ(
11、3);后的输出结果是C_。A) 1 B) 3 C) 9 D) 10二、 阅读程序题阅读程序对于初学者来说很重要,一方面可以巩固所学的语法知识,另一方面通过阅读别人写好的程序来打开自己的思路,就所谓见多识广。通过阅读理解程序,从给出的四个备选参考答案中,选择程序的正确输出。如果选择有误,就要认真分析原因,是概念方面的错误还是对程序逻辑理解不对,从而加深对语法规则的理解,提高程序设计能力。程序设计语言是开发程序的一个工具,学习语言的目的是为了编写程序来解决实际问题,所以特别提倡通过实际上机来检验备选答案,增强动手能力。1下面程序的输出结果是_B_。#include main( ) int x=10
12、; int x=20;printf (%d,, x);%dnA) 10,20 B) 20,10 C) 10,10 D) 20,202以下程序的输出结果是_D_。 int x=10, y=10; printf(%d %dn, x, y);A) 10 10 B) 9 9 C) 9 10 D) 10 93下面程序可能的输出结果是_AC_。main() int a,b;scanf(%2d%3da,&b);a=%d b=%dn,a,b);A) a=12 b=34 B) a=123 b=45 C) a=12 b=345 D) 语句右错误4以下程序段的输出结果是_B_。int a=10,b=50,c=30;
13、if(ab)a=b;b=c;c=a;a=%d b=%d c=%dn,a,b,c);A) a=10 b=50 c=10 B) a=10 b=30 c=10C) a=50 b=30 c=10 D) a=50 b=30 c=505以下程序的输出结果是_C_。 int a=0,b=1,c=0,d=20;if(a) d=d-10;else if(!if(!c) d=15;else d=25;d=%dn,d);A) d=10 B) d=15 C) d=20 D) d=256下面程序的输出结果为_B_。 int a=1,b=0;switch(a) switch (b) case 0:*0*); break;
14、case 1:*1*2*A) *0* B) *0*2* C) *0*1*2* D) 有语法错误7以下程序的输出结果是_D_。 char *s=12134211int v1=0,v2=0,v3=0,v4=0,k;for(k=0;sk;k+)switch(sk) case 1: v1+;case 3 v3+;2 v2+; v4+;v1=%d, v2=%d, v3=%d, v4=%dn,v1,v2,v3,v4); A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1C) v1=5,v2=8,v3=6,v4=1 D) v1=4,v2=7,v3=5,v4=88下面程
15、序的输出是_B。 int num=0;while(num=2) num+;,num); A) 1 B) 1 C) 1 D) 12 2 23 349从键盘上输入446755时,下面程序的输出是C_。 int c;while(c=getchar()!=n)switch(c - putchar(c+4); putchar(c+3); putchar(c+2);n A) 888988 B) 668966 C) 88898787 D) 6689878710下面程序的输出结果是_A_。 int i,j,x=0;for(i=0;i2;i+) x+;for(j=0;j char str100 =How do
16、you dostrcpy( str + strlen(str)/2, es she, str); A) How do you do B) es she C) How are you D) How does she16下面程序的输出结果是_C_。func(int a,int b)c=a+b;return(c); int x=6,y=7,z=8,r;r=func(x-,y+,x+y),z-);,r); A) 11 B) 20 C) 21 D) 3117下面程序的输出结果是_A_。 int a=1,2,3,4,5,6;int *p;p=a;%d ,*p);,*(+p);,*+p);,*(p-);p+
17、=3;%d %d ,*p,*(a+3); A) 1 2 3 3 5 4 B) 1 2 3 4 5 6 C) 1 2 2 3 4 5 D) 1 2 3 4 4 518下面程序的输出结果是_A_。main ( ) int a=1, 2, 3, 4, 5 ;int x, y, *p;p=&x=*(p+2);y=*(p+4);%d,%d,%dn, *p, x, y); A) 1,3,5 B) 1,2,3 C) 1,2,4 D) 1,4,519下面程序的输出结果是_D_。#include string.hfun(char *w,int n) char t,*s1,*s2;s1=w;s2=w+n-1;wh
18、ile(s1s); /* */,s2.sr.c2); /* */ A) LMN B) MN C) N D) IJK A) O B) P C) Q D) R22以下程序的输出结果是D_。 int x,*y;*p;int s=10,20,30,40;struct st a=1,&s0,2,&s1,3,&s2,4,&s3; p=a;,+(*(+p)-y); A) 10 B) 11 C) 20 D) 21 三、程序填空题在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1