吉林大学网络教育2016秋《C语言程序设计》作业答案

更新时间:2024-01-16 23:16:01 阅读量: 教育文库 文档下载

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

C语言程序设计

1:在C语言中,文件的存取是以( )为单位的,这种文件被称作( )文件。 字符、流式

2:设x=10100011,若要通过x^y使x的高4位取反,低4位不变,则y的二进制数是( )。 11110000

3:若a是int型变量,且a的初值为6,则计算表达式后a的值为() a+=a-=a*a -60 4:与表达式x^=y-2等价的另一书写形式是( ).x=x^y一2或X=x^(y一2) 5:在C 语言中,一个函数一般由两个部分组成,它们是( )和( )。函数说明部分、函数体

6:以下程序的功能是将磁盘文件的内容在打印机上输出。请在【】处填入适当的内容。 #include #define SIZE 256

main(int argc,char *argv[argv[1]]) {

char buff[SIZE]; FILE *fpr, *fpd; if (argc!=2) {

puts(“\\7Usege:type filename”); exit(); }

while(fgets(【 】)!=NULL)

fputs(【 】);

fclose(fpr); fclose(fpd);

} buff,SIZE,fpr、buff,fpd

7:若x和n均是int型变量,且x的初值为12,n的初值为5,则计算表达式后x的只为( )。 x%=(n%=2) 0

8:若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为()。 1 9:若有定义:int b=7; float a=2.5,c=4.7;则下面表达式的值为(). a+(int)(b/3*(int)(a+c)/2)%4 5.500000 10:表达式10%3的结果是() 1

11:把以下多项式写成只含七次乘法运算,其余皆为加、减运算的表达式( ). 5X^7+3X^6-4X^5+2X^4+X^3-6X^2+X+10

x*〔X *(x *(x*(x*(X*(5*x十3)一4)十2)十1)一6)十1)十10 12:下面程序的运行结果是( )。 #include main() {int y,a; y=2;a=1; while(y--!=-1)

{do{a*=y; a++;}while(y--);} printf(“%d,%d”,a,y); } 1,-2

13:当调用函数read从磁盘文件中读数据时,若函数的返回值为10,则表明读入了10个字符;若函数的返回值为0,则是( );若函数的返回值为-1,则意味着( )。 遇到了文件结束符、读文件出错

14:以下程序的功能是用“追加“的形式打开gg.txt查看文件指针的位置;然后向文件中写入”data”再查看文件指针的位置。其中ftell(*FILE)返回long型的文件指针位置。

程序执行前gg.txt内容为:sample。请在【】处填入适当的内容。 #include Void main(void) {【 】 long position; fp=fopen(【 】); position=ftell(fp);

printf(“position=%ld\\n”,position); fprintf(【 】); position=ftell(fp);

printf(“position=%ld\\n”,position); fclose(fp); fclose(fp);

} FILE*fp、\、fp,\

15:在C语言中(以16位PC机为例),一个float型数据在内存中所占用的字节数为();一个double型数据在内存中所占用的字节数为()。 4、8 16:执行下列语句后,a的值是() int a=12;a+=a-=a*a;-264

17:以下程序的运行结果是( main() { increment(); increment(); increment(); }

increment(); { int x=0; x+=1;

printf(“%d”,x); }111

18:以下程序的运行结果是( main()

{struct EXAMPLE{struct{ int x; inty;

)。 . )

}in; int a; int b; }e;

e.a=1;e.b=2; e.in.x=e.a*e.b; e.in.y=e.a+e.b;

printf(“%d,%d”,e.in.x,e.in.y); } 2,3

19:若a、b和c均是int型变量,则计算表达式后,a值为(),b值为(),c值为()。 a=(b=4)+(c=2) 6、4、2

20:设有char a,b;若要通过a&b运算屏蔽掉a中的其它位,只保留第2和第8位(右起为第1位),则b的二进制数是( ). 10000010 21:下面程序段的运行结果是( )。 i=1;s<3; do{s+=i++;

if(s%7==0) continue; else ++i; }while(s<15); printf(“%d”,i); 8

22:若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为( )。8.000000

23:下面程序运行结果是( )。 char s[20]=”abcd”; char *ssp=s; sp++;

puts(strcat(sp,”ABCD”)); bcdABCD 24:下面程序段的运行结果是( )。 char s[80], *sp=”HELLO!”; sp=strcpy(s,sp); s[0]=’h’; puts(sp); hELLO!

25:以下程序的运行结果是( ). mian() {

unsigned a,b; a=0*9a; b=a;

printf(“a:%x\\nb:%x\\n”,a,b); } a:9a b:ff65

26:假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为(27:下面程序的运行结果是( )。 #include main()

。 9 )

{int i,k=0; for(i=1;;i++) {k++; while(k

if(k%3==0) goto loop; } }

loop:printf(“%d,%d,i,k”); } 2,3

28:以下的运行结果是( )。 #include”string.h” int *P; main()

{int a=1,b=2,c=3; p=&b; pp(a+c,&b);

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

pp(inta ,int *b) {int c=4;

p=*b+c; a=*p-c;

printf(“(2) %d %d %d \\n”,a,*b,*p); }2 6 6,1 6 6

29:以下程序的运行结果是( ). struct n{ int x; char c; }; main()

struct n a={10,‘x’}; func(a);

printf(%d,%c,a.x,a.c); }

func(struct n b) {b.x=20; b.c=’y’; }10,x

30:以下程序的运行结果是( main()

{ int i=2,x=5,j=7;

。 )

fun(j,6);

printf(“i =%d;j=%d;x=%d\\n”,i,j,x); }

fun(int i,int j) { int x=7;

printf(“i=%d;j=%d;x=%d\\n”,i,j,x); }i=7; j=6; x=7 (打)

1:下面有关for循环的正确描述是( ) 4.for循环体语句中,可以包含多条语句,但要用花括号括起来

2:下面程序段的运行结果是( )。 char *s=”abcde”;

s+=2; printf(“%d”,s); 3.字符’c’的地址

3:已有程序和输入数据的形式,程序中输入语句的正确形式应当为( )。(注:?表示空格,表示回车) main() { int a; float f;

printf(“\\nInput number:”); 输入语句

printf(“\\nf=%f,a=%d\\n”,f,a); }

Input number:4.5? ?24.scanf(“%f,%d”,&f,&a); 4:下面四个选项中,均是合法整形常量的选项是( ). 1. 160 -0xffff 011

5:C语言共用体型变量在程序运行期间 ( ) 。 2.只有一个成员驻留在内存中 6:以下程序的运行结果是 ( ).. . typedef union {long a[2]; int b[4]; char c[8]; }TY TY our; main()

{printf (“%d\\n”,sizeof(our)); } 3.8

8:在C语言中,要求运算数必须是整形的运算符是( ). 4.%

9:若有说明:int a[3][4];则对a数组元素的非法引用是( )。 4.a[0][4] 10:若有以下定义和说明: #include“stdio.h” struct std { char num[6];

char name[8]; float mark[4]; }a[30]; FILE *fp;

设文件中以二进制形式存有10个班的学生数据,且已正确打开,文件指针定 位于文件开头。若要从文件中读出30个学生的数据放入a数组中,以下不能 此功能的语句是( )。 4.for( i=0; i<30; i++ )

fread( a[i], sizeof( struct std ), 1L,fp );

11:设有以下结构体类型: struct st { char name[8]; int num; float s[4]; }student[50]; 并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘 文件fp中,以下不正确的形式是( )。 3.fwrite( student, 25*sizeof( struct st ), 25, fp ); 12:设有以下说明,则下面不正确的叙述是( )。 Union data { int i; char c; float f; }un;

3.un可以作为函数参数 13:请读程序: #define ADD(x) x+x main()

{

int m=1,n=2,k=3; int sum=ADD(m+n)*k; printf(“sum=%d”,sum); }

上面程序的运行结果是( )。 2.sum=10

14:fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是( )。 3.读或读写

15:若有语句int *point,a=4;和point=&a; 下面均代表地址的一组选项是( )。 4.&a,&*point,point

16:C语言结构体类型变量在程序执行期间( ). 1.所有成员一直驻留在内存中 17:设位段的空间分配由右到左,则以下程序的运行结果是( ). struct packed_bit {unsigned a:2; unsigned b:3; unsigned c:4; int I; } data; main()

{data.a=8; data.b=2;

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

2.2

18:已有变量定义和函数调用语句:int a=25; print_value(&a);下面函数的正确输出结果是( )。

void print_value(int *t)

{ print(“%d\\n”,++*x);} 4.26

19:在位运算中,操作数每左移一位,其结果相当于( ). 1.操作数乘以2 20:以下C程序正确的运行结果是( ). main() {int y=2456; printf(“y=%3o\\n”,y); printf(“y=%8o\\n”,y); printf(“y=%#8o|n”,y); } 4.y=4630 y= 4630 y= 04630

21:下面不正确的字符串常量是( ) 1.’abc’

22:以下关于运算符优先顺序的描述中正确的是( ). 3.以赋值运算符<逻辑与运算符<关系运算符<算术运算符

23:以下正确的叙述是( ). 4.在C程序中,%是只能用于正数运算的运算符 24:已知学生记录描述为 struct student

{int no;

char name[20]; char set; struct {int year; int month; int day; }birth; };

struct student s;

设变量s中的“生日”应是“1984年11月11日”,下列对生日的正确赋值方式是( ). 4.s.birth.year=1984; s.birth.month=11; s.birth.day=11;

25:下面程序段的运行结果是( ).for(x=3,x<6;x++) printf((x%2)?(“##%d\\n”),x); 4.**3##4 **5

26:以下不正确的叙述是( ) 4.当从键盘输入数据时,对于整形变量只能输入整形数值,对于实型变量只能输入实型数值

27:下面四个选项中,均是合法浮点数的选项是( ). 2.-.60 12e-4 -8e5 28:表达式~0x13的值是( ). 1.0xFFEC

29:一个c程序是由( )。 2.一个或多个函数组成

30:以下对二维整形数组a进行正确初始化的语句是( )。 2.int a[][3]={{1,2,3},{4,5,6}}; 1:

若有定义:int e=1,f=4,g=2;float m=10.5,n=4.0,k;则计算赋值表达式

k=(e+f)/g+sqrt ((double)n)*1.2/g+m后k的值是( ).

回答:13.700000

3:请读程序片段: int m=20,n=025; else printf(“nnn\\n”)

以上程序片段的输出结果是( ). 回答:mmm

5:请读程序片段: int x=1;

printf(“%d\\n”,x);

上面程序片段的输出结果是( ). 回答:-2 6:

若输入的值是-125,以下程序的运行结果是(#include “math.h” main()

。 )

{ int n;

scanf(“%d”,&n); printf(“%d=”,n); if(n<0) printf(“-”); n=fabs(n); fun(n); }

fun(int n) { int k,r;

for(k=2;k<=sqrt(n);k++) { r=n%k; while(r==0) {printf(“%d”,k); n=n/k;

if(n>1) printf(“*”); r=n%k; } }

if(n!=1) printf(“%d\\n”,n); }

回答:?125= ?5*5*5 (打印)

10:以下程序的运行结果是( ). main() {

char a=-8;unsigned char b=248; printf(“%d,%d”,a>>2,b>>2); }

回答:-2,62

11:若有以下定义,则计算表达式y+=y-=m*=y后y值是() 回答:-6 12:

以下程序的运行结果是( )。 #include main()

{ int a=1,b=2,c; c=max(a,b);

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

max(int x, int y) { int z; z=(x>y)? x:y; return(z); }

回答:max is 2 13:请读程序片段: unsigned a=16;

printf(“%d,%d,%d\\n”,a>>2,a=a>>2,a); 以上程序片段的输出结果是( ).

回答:1,4,16

14:与表达式x^=y-2等价的另一书写形式是( ).

回答:x=x^y一2或X=x^(y一2)

15:设x=10100011,若要通过x^y使x的高4位取反,低4位不变,则y的二进制数是( )。

回答:11110000

16:面程序段的运行结果是( )。 char[]=”12345’,*p; int s=0;

for9p=a;*p!=`\\0`;p++) s=10*s+*p-`0`; printf(“%s”,P+5); 回答:12345

17:在C语言中(以16位PC机为例),一个char型数据在内存中所占用的字节数为( );一个int型数据在内存中所占用的字节数为( )。 回答:4、8 18:

在C语言中,&运算符作为单目运算符时表示的是( );作为双目运算符时表示的是( )运算.

回答:取地址、按位与 21:

以下程序的运行结果是( )。 main() { increment();

increment(); increment(); }

increment(); { int x=0; x+=1;

printf(“%d”,x); }

回答:111 22:

已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=’a’+’8’-‘3’的值为( )。 回答:f

24:下面程序段的运行结果是( )。 har str[]=”abc\\0def\\0ghi”,*p=str; printf(“%s”,p+5); 回答:ef

25:设int x;当x的值分别为1、2、3、4时.表达式(x&l==1)?1:o的值分别是( ),( ),( ),( ). 回答:1、0、1、0

26:在C语言中,一个int型数据在内存中占用2个字节,则int型数据的取值范围为( )

回答:-32768~+32767 或-32768~+32767

27:若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为(),n的值为()。 x+=n++

回答:10、6 (打)

28:以下程序的运行结果是( ). main() {

unsigned char a,b; a=0*1b;

printf(“0x%x\\n”,b=a<<2); }

回答:0x6c

3:C语言中的标识符只能由三种字符组成,它们是( ),( ),( )。 回答:字母、数字、下划线

18:若a是int型变量,则计算表达式后a的值为() a=25/3%3 回答:2

19:定义int x,yl执行y=(x=1,十十x,x十2)5语句后,y的值是( ) 回答:4

20:以下的运行结果是( )。 #include main() {int I,k;

for(I=0;I<4;I++); {k=sub(&I); printf(“=”,K); }

printf(“\\n”); }

sub(int *s) {static int t=0; t=*s+t; }

回答:0 1 3 6

21:若有定义:char c=’\\010’;则变量c中包含的字符个数为( ). 回答:1个

26:若s是int型变量,且s=6,则下面表达式的值为()。 s%2+(s+1)%2 回答:1

29:测试char型变量a第六位是否为1的表达式是( )(设最右位是第一位) 回答:a&040或a&0x20或a&32

1:若有以下说明和语句,则 对中域的正确引用方式是( )。 Struct pupil {char name [20 ; int sex; }pup,*p; p=&pup; 4.(*p).sex

2:以下for循环是( )。

for(x=0,y=0;(y!=123)&&(x<4);x++); 3.执行4次

3:若I为整型变量,则以下循环执行次数是( ). for(I=2;I==1) printf(“%d”,I--);

2.0次

4:一个C语言程序是由( )。 2.函数组成 5:设有下面的程序段:

chat s[]=”china”; char *p; p=s; 则下列叙述正确的是( )。 4.*p与s[0]相等

6:利用fseek函数的正确调用形式是( ). 4.以上答案均正确 7:fwrite函数的一般调用形式是( )。 4.fwrite(buffer,size,count,fp) ;

8:在16位IBM-PC机上使用C语言,若有如下定义: struct data {int i; char ch; double f; }b;

则结构变量b占用内存的字节数是( ). 4.4

9:函数rewind的作用是( ). 1.使位置指针重新返回文件的开头

10:以下对C语言中共用体类型数据的叙述正确的是( )。 3.一个共用体变量中不可能同时存放其所有成员 11:下面四个选项中,均是不合法转义字符的选项是( ).

2.’\\1011’ ‘\\’ ‘\\a’

12:若已定义int a=5;下面对(1),(2)两个语句的正确解释是( )。 (1)int *p=&a; (2) *p=a;

4.(1)在对p进行说明的同时进行初始化,使p指向a (2)将变量a的值赋于*p

13:以下符合C语言语法的赋值表达式是( ). 2.d=9+e,f=d+9

14:以下程序的运行结果是( )。 #define MIN(x,y) (x)<(y)?(x):(y) main()

{int i=10,j+15,k; k+10*MIN(i,j); printf(“%d\\n”,k); } 2.15

15:下面不正确的字符串常量是( ) 1.’abc’

16:下面程序运行结果是( ). # include main()

{ int a=1,b=10; do

{b-=a ; a++ ; } while ( b--<0) ; printf ( “ a=%d , b=%d\\n”,a,b); }

2.a=2,b=8

17:在一个c源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( ). 4.static

18:一个c程序的执行是从( ). 1.main( )函数开始,直到main( )函数结束 19:设有以下结构体类型: struct st { char name[8]; int num; float s[4]; }student[50]; 并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘 文件fp中,以下不正确的形式是( )。 3.fwrite( student, 25*sizeof( struct st ), 25, fp );

20:设 char *s=”a17bc”; 则指针变量s指向的字符串所占的字节数是( )。 3.6 21:选择出合法的if语句(设int x,a,b,c;)( ). 1.if(a=b)x十十; 22:若有说明语句: char c=‘\\72’; 则变量c( )。 1.包含1个字符 23:以下对一维整形数组a进行正确初始化的语句是( )。 3.int a[]={0}; 24:以下对二维整形数组a进行正确初始化的语句是( )。 1.int a[2][]={{1,01},{5,2,3}}; 2.int a[][3]={{1,2,3},{4,5,6}}; 25:下面四个选项中,均是不合法浮点数的选项是( ). 2.123 2e4.2

.e5

26:以下程序的运行结果是( )。

#define MAX(A,B) (A)>(B)?(A):(B) #define PARTY(Y) printf(“Y=%d\\t“,Y) Main()

{int a=1,b=2,c=3,d=4,t; T=MAX(a+b,c+d); PRINT(t); } 3.Y=7

27:使用typedef定义一个新类型的正确步骤是( )。 3.2,1,4,3

28:以下不正确的叙述是( )

4.当从键盘输入数据时,对于整形变量只能输入整形数值,对于实型变量只能输入实型数值

29:以下scanf函数调用语句中对结构体 变量成员的不正确引用是( )。 Stuct pupil {char name[20 ]; int age ; int sex; }pup[5,]*p;

p=pup; 4.scanf(“%d”,P->age);

30:表示图中坐标轴上阴影部分的正确表达式是( ). //// | | ////| //// | | ////| ________________________________________X A b c 3.(x<=a) ||(x>=b)&&(x<=c) 1:请读程序片段: int a=1,b=2;

if(a&b)printf(“***\\n”); else printf(“$$$\\n”);

以上程序片段的输出结果是( ). 回答:$$$

2:下面程序的运行结果是( )。 #include main() { int I,j=4;

for(i=j;i<=2*j;i++) switch(i%j)

{ case 0:

case 1:printf(“*”);break; case 2:printf(“#”); } }

回答:****#

6:当运行以下程序时,从键盘输入 book book

(表示回车, 表示空格),则下面程序段运行的结果是( )。 char a1[80],a2[80],*s1=a1,*s2=a2; gets(s1);gets(s2);

if(!strcmp(s1,s2)) printf(“*”): else printf(“#”);

printf(“%d”,strlen(strcat(s1,s2))); 回答:#9

10:C语言所提供的基本数据类型包括:单精度型、双精度型()、()、()。 回答:整型、字符型、枚举型

16:与表达式a&=b 等价的另一书写形式是( ). 回答:a=a&b 17:

以下程序的功能是将文件file1.c的内容输出到屏幕上并复制到文件file2.c中。请将【】

处添入适当的内容。 #include main() {

FILE【 】;

fp1=fopen(“file1.c”,”r”); fp2=fopen(“file2.c”,”w”);

while(! Feof(fp1)) putchar(grtchar(fp1)); 【 】

While(! Feof(fp1)) putc(【 】); fclose(fp1); fclose(fp2); }

回答:*fp1,*fp2、rewind(fp1)、getc(fp1),fp2

21:设x=10100011,若要通过x^y使x的高4位取反,低4位不变,则y的二进制数是( )。 回答:11110000

25:表达式10/3的结果是( ) 回答:3

26:下面程序段的运行结果是( )。

char a[]=”123456789”,*p; int i=0; p=a; while(*p)

{if(i%2==0) p=’*’; p++; i++; } puts(a)

回答:*2*4*6*8*

27:设x是一个整数(16bit),若要通过x|y使x低8位置1,高8位不变,则y的八进制数是 ( ). 回答:0377

1:当顺利执行了文件关闭操作时,fclose函数的返回值是( )。 3.0

2:设有以下说明,则下面不正确的叙述是( )。 Union data { int i; char c; float f; }un;

3.un可以作为函数参数

3:有如下程序,若要求a1、a2、c1、c2的值分别为10、20、A、B,正确的数据输入是( ). main() { int a1,a2; char c1,c2;

scanf(\scanf(\}

4.10 20AB

4:若有以下说明和语句,则下面表达式中值为1002的是( Struct student {int age; int num; };

struct student stu[3]={{1001,20},{1002,19},{1003,21}; struct student *p; p=stu; 4.(*++p).age

5:下面程序段的运行结果是( ). for(y=1;y<10;) y=((x=3*y,x+1),x-1);

)。

printf(“x=%d,y=%d”,x,y); 3.x=15,y=14

6:下面程序段的运行结果是( )。 char *s=”abcde”; s+=2; printf(“%d”,s); 3.字符’c’的地址

7:已有定义 int k=2;int *ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是( )。 2.ptr2=k;

8:变量的指针,其含义是指该变量的( )。 2.地址

9:逻辑运算符两侧运算对象的数据类型( ). 4.可以是任何类型的数据

10:在一个c源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( ). 4.static 11:以下程序的正确运行结果是( ). #include void num()

{extern int x,y;int a=15,b=10; x=a-b; y=a+b; } int x,y; main() { int a=7,b=5;

x=a+b; y=a-b; num();

printf(“%d,%d\\n”,x,y); } 3.5,25

12:设有如下定义: struct sk {int n; float x; }data,*p;

若要使P指向data中的n域, 正确的负值语句的是( )。 3.p=(struct sk*)&data.n;

13:已知x=43,ch=’A’,y=0;则表达式(x>=y6&&ch(‘B’ &&! Y)的在值是( ). 3.1

14:若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是( )。 2.3 15:若有宏定义如下:

#define X 5 #define Y X+1 #define Z Y*X/2 则执行以下printf语句后,输出结果是( )。 Int a;a=Y;

Printf(“%d\\n”,Z); Printf(“%d\\n”,--a); 4.7 5

16:在C语言中,char型数据在内存中的存储形式是( )。 4.ASCII码

17:以下正确的叙述是( ).

4.在C程序中,%是只能用于正数运算的运算符 18:以下程序的运行结果是 ( ) . #include “stdio.h” union pw {int I char ch[2]; }a; main() { ch[0]=13; ch[1]=0;

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

19:fwrite函数的一般调用形式是( )。

4.fwrite(buffer,size,count,fp) ; 20:以下程序的运行结果是( )。 #define MIN(x,y) (x)<(y)?(x):(y) main()

{int i=10,j+15,k; k+10*MIN(i,j); printf(“%d\\n”,k); } 2.15

21:下面程序的运行结果是( ). #include main() {int i,b,k=0; for(i=1;i<=5;i++) {b=i%2;

while(b- ->=0) k++; }

printf(“%d,%d”,k,b); } 4.8,-2

22:若有说明:int a[3][4];则对a数组元素的正确引用是(3.a[1+1][0]

。 )

23:根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是( )。 main() { int x;float y; pringf(“enter x,y;”) 输入语句 输出语句 }

输入形式 enter x,y:2 3.4 输出形式 x+y=5.40

2.scanf(“%d%f”,&x,&y); printf(“\\nx+y=%4.2f”,x+y);

24:下面能正确进行字符串赋值操作的是( )。25:以下程序输出的结果是( ) void main() { int a=5,*p1,**p2; p1=&a,p2=&p1; (*p1)++;

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

3.char *s; s=”ABCDE”;

3.6

26:判断char型变量cl是否为小写字母的正确表达式为( ). 4.(c1>=’a’)&&(c1<=’z’)

27:设有以下说明语句 struct stu {int a; float b; }stutype;

则下面的叙述不正确的是( ). 3.stutype是用户定义的结构体类型名

28:以下正确的说法是( ). 1.如果在一个函数中的复合语句中定义了一个变量,则该变量只在该复合语句中有效

29:以下使i的运算结果为4的表达式是( )。 4.int i=1,j=1; i+=j十=2;

30:下面程序段中,for循环的执行次数是( )。 char *s=”\\ta\\018bc”;

for ( ;*s! =’\\0’;s++) printf(“*”); 3.6

2:已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=’A’+’6’-‘3’;后,c2的值为( ). 1.D

4:对于for(表达式1;;表达式3)可理解为( ) 2.for(表达式1:1;表达式3) 6:以下叙述中正确的是( )。 3.宏替换不占用运行时间,只占编译时间 7:以下程序的正确运行结果是( ).

main() {int a=2,I;

for (I=0;I<3;I++) printf(“4%d”,f(a)); } f(int a)

{ int b=0;static int c=3; b++; c++; return(a+b+c); } 4.7 8 9

8:为了避免嵌套的if-else语句的二义性,c语言规定else总是与( )组成配对关系。 3.在其之前未配对的最近的if

10:有以下定义和语句,则以下引用形式不合法的是( )。 Struct s {int i1;

struct s*i2,i0; };

static struct s a[3 ]={2,&a[1],’\\0’,4,%a[2],&a[0],6,’\\0’,&a[1]}, *ptr; ptr=a; 4.ptr->i1

11:已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是( )。 3.一个指针,指向要读入数据的存放地址

12:选择出合法的if语句(设int x,y;)( )。 1.if(x!=y)if(x>y)printf(\>y\n”);

else prinf(”x<y\\n”);else printf(”X==y\n”); 14:以下对一维整形数组a的正确说明是( )。 4.#define SIZE 10 int a[SIZE];

15:若有说明:int a[][4]={0,0};则下面正确的叙述是( )。 4.只有元素a0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

18:已有如定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A 和B,当从第一列开始输入数据时,正确的数据输入方式是( )。(注:表示回车) int a1,a2; char c1,c2; scanf(“%d%d”,&a1,&a2); scanf(“%c%c”,&c1,?); 4.10?20AB 19:若有以下定义和语句: union data {int i; char c; float f; }a; int n;

则以下语句正确的是( )。

2.a={2,’a’,1.2};

20:若有定义:int a=7; float x=205 ,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是( )。 1.2.500000

21:如果a=1,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为( ). 1.1

22:下面程序段的运行结果是( ) int n=0;

while(n++<=2); printf(“%d”,n); 4.有语法错

24:阅读以下程序,当输入数据的形式为:25,13,10,正确的输出结果为()。 main() { int x,y,z;

scanf(“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\\n”,x+y+z); }

4.不确定值

25:若有说明:int a[3][4];则数组a中各元素( )。 2.可在程序的编译阶段得到初值0

28:若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum的值为( ). 1.7

29:设有说明: char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为( )。 4.double.

30:设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是( ). 4.!((x<y)&&!z ||1)

4:以下程序的运行结果是( ) #include”stdio.h”

#define FUDGE(y) 2.84+y

#define PR(a) printf(“%d”,(int)(a)) #define PRINT1(a) PR(a);put char(‘\\n’) main() {int x=2;

PRINT1(FUDGE(5)*x); } 2.12

5:C语言的编译系统对宏命令的处理是( )。 4.在对源程序中的其它语句同时进行编译的

6:若有以下程序段: …………

int a[]={4,0,2,3,1},I,j,t; for(I=1i<5;I++) {t=a[I];j=I-1;

while(j>=0&&t>a[j]) {a[j+I]=a[j];j--;} a[j+1]=t;} …………

则该程序段的功能是( )。 2.对数组a进行插入排序( 降序 7:请读程序 #include #defineMUL(x,y)(x)*y main() {int a=3,b=4,c; c=MUL(a++,b++); printf(\ }

上面程序的输出结果是( )。 1.12

8:下面程序( )。(每行程序前面的数字表示行号)。 1 main() 2 {

3 int a[3]={1}; 4 int i;

5 scanf(\

6 for(i=1;i<3;i++) a[0]=a[0]+a[i];

7 printf(\ 8 } 4.5

9:下面四个选项中,均是非法常量的选项是( )。 1. ‘as’ -0fff \\0xa’

10:若有以下宏定义:

#define N 2 #define Y(n) ((N+1)*n)

则执行语句z=2*(N+Y(5));后的结果是( )。 2.z=34

11:凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( ). 1.自动(auto) 13:以下叙述中不正确的是( )。 3.C程序在执行过程中对预处理命令行进行处理 16:下面判断正确的是( )。 3.char *s=”china”; 等价于 char *s; s=”china”; 20:若有宏定义:#define MOD(x,y) x%y 则执行以下语句后的输出为( )。 Int z,a=15,b=100; Z=MOD(b,a);

Printf(“%d\\n”,z++); 2.10

21:sizeof(float)是( )。 2.一个整型表达式

22:若以“a+”方式打开一个已存的文件,则以下叙述正确的是( )。 1.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 23:下面程序段的运行结果是( ) x=y=0;

while(x<15) y++, x+=++y; printf(“%d,%d”’y’x); 4.8,20

24:下列四组选项中,均不是C语言关键字的选项是( ). 1.define i f type 27:

以下程序的正确运行结果是( ). #include main()

{ int k=4,m=1,p;

p=func(k,m);printf(“%d,”,p); p=func(k,m);printf(“%d\\n”,p); }

func(int a,int b) { static int m=0,i=2;

i+=m+1; m=i+a+b; return(m); } 1.8,17

30:C语言用( )表示逻辑“真”值。 3.非零整数值

7:若x=0123,则表达式(5+(int)(x))&(2)的值是( ) 回答:0130或88或0x58

10:把int类型变量low中的低字节及变量high中的高字节放入变量s中的表达式是( )。 回答:s=high&0xff00|low&0xOOff

17:与表达式x^=y-2等价的另一书写形式是( ). 回答:x=x^y一2或X=x^(y一2) 11:读程序片段: int a=-1; a=a |0377;

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

以上程序片段的输出结果是( ). 回答:-1.177777

14:设x=10100011,若要通过x^y使x的高4位取反,低4位不变,则y的二进制数是( )。

回答:11110000

21:下面程序段的运行结果是( )。 char *p=”PDP1-0”; int I,d;

for(I=0;I<7;I++) {d=isdigit(*(p+ii));

if(d!=0) printf(“%c *(p+I)); }

回答:1*0*

30:feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为( ),否则为( )。 回答:非零值、0

1:若有说明:int a[3][4]={0};则下面正确的叙述是( )。 4.数组a中每个元素均可得到初值0

4:#define能做简单的替代,用宏替代计算多项式4*x*x+3*x+2之值的函数F,正确的宏定义是( )。 3.#definef(a)(4*a*a+3*a+2) 7:若有代数式

,则正确的C语言表达式是( )。

1.sqrt (fabs(pow(y,x)+log(y)))

8:能正确表示“当x的取值在Ll,10]秆L200,210]范围内为真,否则为假’达式是 ( ) 。 3.(x>=1)&&(x<=lo) ??(x>=20Q)&&(x<=210)

11:若运行以下程序时,从键盘输入2473(表示回车),则下面程序的运行结果是( ).

#include main() {int c;

while((c=getchar())!=’\\n’) switch(c-‘2’) {case 0:

case1: putchar(c+4); case2: putchar(c+4);break

case3: putchar(c+3); default: putchar(c+2);break; }

printf(“\\n”); }1.668977

12:C语言派程序的基本单位是( )。 2.函数

14:函数调用语句:fseek(fp,-20L,2);的含义是( ). 3.将文件位置指针从文件末尾出向后退20个字节 15:设有以下说明: struct packed { unsigned one:1; unsigned two:2; unsigned three:3; unsigned four:4;

} data;

则以下位段数据的引用中不能得到正确数值的是( ) 1.data.one =4 19:fseek函数的正确调用形式是( ). 2.fseek(fp,位置量,起始点); 20:在宏定义#define PI 3.14159中,用宏名PI代替一个( )。 4.字符串

24:以下可作为函数fopen中第一个参数的正确格式是( )。 4.“c\\\%user\\\\text.txt” 25:下列运算符中优先级最高的是( ). 2.十

26:C语言规定,数组名做实参时,它和对应形参之间的数据传递方式是:_____ 4.地址传递

27:以下不正确的语句(设有int p,q)是( )。 4.p&&=q; 28:以下for循环的执行次数是( ).

for(x=0,y=0;(y=123)&&(x<4);x++); 3.执行4次

3:下面四个选项中,均是正确的数值常量或字符常量的选项是( ). 4.+001 0xabcd 2e

5:以下不能对二维整形数组a进行正确初始化的语句是( )。 3.int a[2][3]={{1,2},{3,4},{5,6}};

8:在C语言中,引用数组元素时,其数组下标的数据类型允许是( ) 3.整型常量或整型表达式

9:设C语言中,一个int型数据类型在内存中占2个字节,则unsigned int型数据的取值范围为( )。 3.0~65535

10:当说明一个共用体变量时系统分配给它的内存是( )。 3.成员中占内存量最大

者所需的容量 12:设有程序段 t=0

while(printf(“*”)) {t++; if(t<3) bread; }

下面描述正确的是( ). 2.其中循环控制表达式与‘0’等价 14:已知各变量的类型说明如下: Int k,a,b;

Unsigned long w=5; Double w=1.42;

则以下不符合C语言与法的表达式是( ). 1.x%(-3)

17:以下对二维整形数组a的正确说明是( )。 3.double a[1][4]; 18:下面程序( )。(每行程序前面的数字表示行号)。 1 main() 2 {

3 int a[3]={3*0}; 4 int i;

5 for(i=0;i<3;i++) scanf(\ 6 for(i=1;i<3;i++) a[0]=a[0]+a[i];

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

Top