1、已知:float C,F;由华氏求摄氏正确的赋值表达式是_B_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_。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的值
2、(代表空格),正确的输入是_C_。A) 1.25,2.4 B) 1.252.4 C) x=1.25,y=2.4 D) x=1.25y=2.415已知int x=(1,2,3,4);变量x的值是_D_。最后的值。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) for(i=1,s=0;(s=s+i*i)=100
3、0;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);的输出是_。A) B) n C) 不定 D) 数组定义有误20对二维数组的正确说明是_C_。A) int a=1,2,3,4,5,6; B) int a2=1,2,3,4,5,6;C)
4、 int a3=1,2,3,4,5,6; D) int a2,3=1,2,3,4,5,6;21对字符数组str赋初值,str不能作为字符串使用的一个是_A_。A) char str=;B) char str= C) char str9=s,hangiD) char str8= 22如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为_D_。A) 静态变量 B) 动态变量 C) 外部变量 D) 内部变量23在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要使用的存储类别是C_。A) extern B) regist
5、er C) auto D) static24定义一个函数实现交换x和y的值,并将结果正确返回。能够实现此功能的是_。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=temp; temp=x;25在下列结论中,只有一个是错误的,它是_D_。A) 语言允许函数的递归调用B) 语言中的continue语句,可以通过改变
6、程序的结构而省略C) 有些递归程序是不能用非递归算法实现的 D) C语言中不允许在函数中再定义函数26说明语句int (*p)( );的含义是_C_。A) p是一个指向一维数组的指针变量 B) p是指针变量,指向一个整型数据C) p是一个指向函数的指针,该函数的返回值是一个整型 D) 以上都不对27设有说明int (*p)4;其中的标识符p是_D_。A) 4个指向整型变量的指针变量B) 指向4个整型变量的函数指针C) 一个指向具有4个整型元素的一维数组的指针D) 具有4个指向整型变量的指针元素的一维指针数组28已知:char s10, *p=s,则在下列语句中,错误的语句是_。A) p=s+5
7、; 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的表达式是_。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,12,*p=a;则值为3的表达式是_。A) p+=2,*(p+) B) p+=2,*+p C) p+=2,*p+ D) p+=2,+*p32函数的功能是交换变量x和y中的值,且通过正确调用返回
8、交换的结果。能正确执行此功能的函数是_B_。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有定义如下:struct sk int a;float b;data ,*p;如果 p=&data;则对于结构变量data的成员a的正确引用是B_。A)(*).data.a B) (*p).a C) p-da
9、ta.a D) p.data.a34已知:struct st int n;struct st *next;static struct st a3=1,&a1,3,&a2,5,&a0,*p;如果下述语句的显示是2,则对p的赋值是_。printf(,+(p-next-n);A) p=&a0; B) p=&a1; C) p=&a2; D) p=&a3;35fscanf函数的正确调用形式是_C_。A) fscanf (文件指针, 格式字符串, 输出列表); B) fscanf (格式字符串, 输出列表, 文件指针);C) fscanf (格式字符串, 文件指针, 输出列表); D) fscanf (文
10、件指针, 格式字符串, 输入列表);36使用fgetc函数,则打开文件的方式必须是_。A) 只写 B) 追加 C) 读或读/写 D) 参考答案B和C都正确37已知宏定义#define N 3#define Y(n) (N+1)*n)执行语句z=2*(N+Y(5+1);后,变量z的值是_。A) 42 B) 48 C) 52 D) 出错38已知宏定义 #define SQ(x) x*x,执行语句printf(,10/SQ(3);后的输出结果是_。A) 1 B) 3 C) 9 D) 1039.C语言程序的执行,总是起始于(C )。A) 程序中的第一条可执行语句 B) 程序中的第一个函数C) main
11、函数D) 包含文件中的第一个函数40. 下列说法中正确的是(C )。A) C程序书写时,不区分大小写字母 B) C程序书写时,一行只能写一个语句C) C程序书写时,一个语句可分成几行书写 D) C程序书写时每行必须有行号41.下面对C语言特点,不正确描述的是(D )。A) C语言兼有高级语言和低级语言的双重特点,执行效率高B) C语言既可以用来编写应用程序,又可以用来编写系统软件C) C语言的可移植性较差D) C语言是一种结构式模块化程序设计语言42. .C语言源程序的最小单位是( D )。A) 程序行 B) 语句 C) 函数 D) 字符43. 以下四项中属于C语言关键字的是( C )。A)
12、CHAR B) define C) unsigned D) retern44. 十进制数2403转换成十六进制数为( B )。A) 963 B) 369 C) 953 D) 35945. 在C语言系统中,假设int类型数据占2个字节,则double、long、unsigned int、char类型数据所占字节数分别多少( D )A) 8,2,4,1 B) 2,8,4,1 C) 4,2,8,1 D) 8,4,2,146. 下面程序段执行结果是( B )。int i=5,k;k=(+i)+(+i)+(i+);%d,%d,k,i);A) 24,8 B) 21,8 C) 21,7 D) 24,747.
13、 下面程序段执行结果是( B )。int i=5;%d,%d,%d, i,(+i)+(+i)+(i+),i);A) 8,20,5 B) 8,21,5 C) 5,20,8 D) 5,21,848. 下面程序段的输出结果是(D )。int i=32769;%dn,i);A) 32769 B) 32767 C) -32767 D) 输出不是确定的数49. 下面叙述不正确的是( )。A) C语句末尾必须有分号 B) C语言中无论是整数还是实数都能准确的表示C) 运算符“%”只能用于整数运算 D) 乘除运算符优先级高于加减运算符50. 以下叙述正确的是( )。A) C语句前面必须有行号 B) C程序中每
14、行只能写一条语句C) C语言本身没有输入输出语句 D) 注释必须跟在一行语句的后面51.复合语句应用( )括起来。A) 小括号 B) 方括号 C) 大括号 D) 尖括号52. 若有说明语句:int a; float b;,以下输入语句正确的是( )。A) scanf(%f%fa,&b); B) scanf(%f%dC) scanf(%d,%f D) scanf(%6.2f%6.2f53. 以下程序的输出结果是【 】。main( ) int x=11,y=11;%d%dn,x-,-y);A) 11,11 B) 10,10 C) 10,11 D) 11,101154. 执行下面程序段,给x、y赋值
15、时,不能作为数据分隔符的是( )。int x,y;scanf(%d%dy);A) 空格 B) Tab键 C) 回车 D) 逗号55. 下面合法的语句是( )。A) int a=8,b;b=+a+;,a,b+); B) int a;%d,scanf(a);C) char a;a);char b=scanf(b=%cD) char c=getchar( ); putchar(int)c);56. 执行下面程序时,欲将25和2.5分别赋给a和b,正确的输入方法是( )。float b;a=%d,b=%fA) 252.5 B) 25,2.5 C) a=25,b=5.5 D) a=25b=2.557.
16、与数学公式ab/xy不等价的语句是【 】。A) a*b/x*y B) a*b/x/y C) a*b/(x*y) D) a/(x*y)*b58. 对if语句中表达式的类型,下面正确的描述是【 】。A) 必须是关系表达式 B) 必须是关系表达式或逻辑表达式C) 必须是关系表达式或算术表达式 D) 可以是任意表达式59. 多重if_else语句嵌套使用时,寻找与else配套的if方法是【 】。A) 缩排位置相同的if B) 其上最近的if C) 下面最近的if D) 同行上的if60. 以下错误的if语句是【 】。A) if(xy) z=x; B) if(x=y) z=0;C) if(x!=y) p
17、rintf(,x) else printf(,y); D) if(xb) a=b,b=c;c=a;a=%d,b=%d,c=%d,a,b,c); A) a=20,b=30,c=20 B) a=20,b=40,c=20 C) a=30,b=40,c=20 D) a=30,b=40,c=3064. 对于条件表达式(k)?(i+):(i-)来说,其中的表达式k等价于【 】。A) k=0 B) k=1 C) k!=0 D) k!=165. 执行下面的程序后,输出为( )。 int m=20;swith(m) case 19: m+=1;case 20:case 21:case 22:,m);A) 20
18、B) 21 C) 22 D) 23二、 阅读程序题阅读程序对于初学者来说很重要,一方面可以巩固所学的语法知识,另一方面通过阅读别人写好的程序来打开自己的思路,就所谓见多识广。通过阅读理解程序,从给出的四个备选参考答案中,选择程序的正确输出。如果选择有误,就要认真分析原因,是概念方面的错误还是对程序逻辑理解不对,从而加深对语法规则的理解,提高程序设计能力。程序设计语言是开发程序的一个工具,学习语言的目的是为了编写程序来解决实际问题,所以特别提倡通过实际上机来检验备选答案,增强动手能力。1下面程序的输出结果是_。#include int x=10; int x=20;printf (%d,, x)
19、;%dnA) 10,20 B) 20,10 C) 10,10 D) 20,202以下程序的输出结果是_。 int x=10, y=10;%d %dn, x, y);A) 10 10 B) 9 9 C) 9 10 D) 10 93下面程序可能的输出结果是_。main() int a,b;%2d%3db);a=%d b=%dn,a,b);A) a=12 b=34 B) a=123 b=45 C) a=12 b=345 D) 语句右错误4以下程序段的输出结果是_。int a=10,b=50,c=30;b)a=b;b=c;c=a;a=%d b=%d c=%dn,a,b,c);A) a=10 b=50
20、c=10 B) a=10 b=30 c=10 C) a=50 b=30 c=10 D) a=50 b=30 c=505以下程序的输出结果是_。 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下面程序的输出结果为_。 int a=1,b=0; switch (b)*0*); break;*1*2*A) *0* B) *0*2* C) *0*1*2* D) 有语法错误7以下程序的输出结果是_。 char *s=12134211int
21、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下面程序的输出是_。 int num=0;while(num=2) num+;,num);A) 1 B) 1 C) 1 D) 12 2 23 349从键盘上输入446755时,下面程序的输出是_。 int c;while(c=getchar()!=n)switch(c - putchar(c+4); putchar(c+3); putchar(c+2);nA) 888988 B) 668966 C) 88898787 D) 6689878710下面程序的输出结果是_。 int i,j,x=0;for(i=0;i2;i+) x+;for(j=0;j-3;j+) if(j%2)continue;x+;x=%dn,x);A) x=4 B) x=8 C) x=6 D) x=1211下面程序的输出结果是_。#i
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1