当前位置:文档之家› C语言习题级参考答案

C语言习题级参考答案

测试题111.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(B)。

A、char s[10];strcpy(s,"abcdefg");B、char s[10];s="abcdefg";C、char s[10]="abcdefg";D、char t[]="abcdefg",*s=t2.下列语句的输出结果是(B)。

printf("%d\n",(int)(2.5+3.0)/3);A、2B、1C、有语法错误不能通过编译D、03.以下程序段的输出结果是 Amain(){ char ch1, ch2;ch1 = …A‟ + …5‟ - …3‟;ch2 = …A‟ + …5‟ - …3‟;printf(“%d,%c\n”, ch1,ch2);}A、67, CB、B,CC、不确定的值D、C,D4.以下程序段的输出结果为(B)。

char c[]="abc"; int i=0;do ;while(c[i++]!='\0');printf("%d",i-1);A、abcB、3C、abD、25.相同结构体类型的变量之间,可以(C)。

A、比较大小B、地址相同C、赋值D、相加6. C语言源程序文件经过C编译程序编译连接之后生成一个后缀为(B)的可执行文件A、.objB、.exeC、.cD、.bas7.以下程序的输出结果是 Cmain(){ char s[] = “ABCD”, *p;for(p = s; p < s + 4; p++)printf(“%s\n”, p);}A、B、C、D、8.当调用函数时,实参是一个数组名,则向函数传送的是(B)。

A、数组每一个元素的地址B、数组的首地址C、数组每个元素中的值D、数组的长度9.如果int a=2,b=3,c=0,下列描述正确的是(D)A、a>b!=c和a>(b!=c)的执行顺序是一样的B、a&&b>c的结果为假C、a||(b=c)执行后b的值为0D、!a!=(b!=c)表达式的值为110.当调用函数时,实参是一个数组名,则向函数传送的是(B)。

A、数组每个元素中的值B、数组的首地址C、数组的长度D、数组每一个元素的地址11. C语言中,switch后的括号内表达式的值可以是 CA、只能为整型和字符型B、只能为整型C、任何类型D、只能为整型,字符型,枚举型12.定义语句int *swap();指的是 DA、以上说法均不对B、swap是一个返回整型值的函数C、swap是一个指向函数的指针D、swaP是一个返回指向整型值指针的函数13.若有定义int a=9;,则执行语句printf("%d\n",++a);后的输出结果是(C)。

A、11B、9C、10D、1214.以下数组定义中不正确的是(C)。

A、int a[2][3];B、int b[][3]={0,1,2,3};C、int d[3][]={{1,2},{1,2,3},{1,2,3,4}};D、int c[100][100]={0};15.下列程序段的输出结果为(C)。

int x=3,y=2; printf("%d",(x-=y,x*=y+8/5));A、5B、1C、3D、716.下列四组选项中,均不是C语言关键字的选项是(C)。

A、getc char printfB、include scanf caseC、define IF typeD、while go pow17.若用数组名作为函数的实参,传递给形参的是(C)。

A、数组元素的个数B、数组第一个元素的值C、数组的首地址D、数组中全部元素的值18.若变量a与i已正确定义,且i已正确赋值,合法的语句是(B)。

A、a=a++=5;B、++i;C、a==1D、a=int(i);19.指针变量p进行自加运算(即执行p++;)后,地址偏移值为2,则其数据类型为(A)。

A、intB、doubleC、floatD、char20.下面标识符中,不合法的用户标识符为 AA、m#nB、x_22C、DoD、CHAR21.下列数组说明中,正确的是(B)。

A、int array[3][];B、int array[][4];C、int array[][][5];D、int array[][];22.判断两个字符串是否相等,正确的表达方式是(C)A、while(s1=s2)B、while(s1= =s2)C、while(strcmp(s1,s2)==0)D、while(strcmp(s1,s2)=0)23.利用 fseek 函数可以实现的操作是(D)。

A、改变文件的位置指针B、文件的随机读写C、文件的顺序读写D、以上答案均正确24.下列关于单目运算符++、--的叙述中正确的是(A)A、它们的运算对象可以是char型变量和int型变量B、它们的运算对象可以是任何变量和常量C、它们的运算对象可以是int型变量,但不能是char型变量D、它们的运算对象可以是char型变量,但不能是int型变量25.设有 int x=11; 则表达式 (x++ * 1/3) 的值是(C)。

A、12B、11C、3D、426.下列变量定义中合法的是(A)。

A、short _a=1-.1e-1;B、long do=0xfdaL;C、double b=1+5e2.5;D、float 2_and=1-e-3;27.下列语句的结果是(B)。

main(){ int j;j=3;printf("%d,",++j);printf("%d",j++);}A、3,4B、4,4C、4,3D、3,328.系统的标准输入文件是指(B)。

A、显示器B、键盘C、硬盘D、软盘29.设有 int x=11; 则表达式 (x++ * 1/3) 的值是(A)。

A、3B、4C、12D、1130.以下程序的输出结果是 Cvoid fun( int *s){ static int j = 0;dos[j] += s[j+1];while(++j < 2);}main(){ int k, a[10 ]= {1, 2, 3, 4, 5};for( k = 1; k < 3; k++)fun(a);for( k = 0; k < 5; k++)printf("%d", a[k]);}A、34756B、23445C、35745D、12345判断1.静态存储变量不随其所在函数的调用结束而被释放,其值会保留作为下一次调用的初值.T2.若有说明int c;则while(c=getchar());是正确的C语句。

T3.设有数组定义: char array [ ]="hello"; 则数组 array所占的空间为5. F4.经过下述赋值int x=3;double y;y=(double)x;后,则x变量的数据类型为int。

T5. char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。

F6. integer是合法的关键字。

F7. 共同体变量所占的内存长度等于最长的成员的长度。

T8. 数组在内存中占一连续的存储区,数组名代表数组的首地址.T9. 若有定义:int j;则表达式(j=3,j++,j=5,j+5)执行后,j的值为10。

F10. ++(i+1);是非法的赋值语句。

T程序设计/*------------------------------------------------【程序设计】1--------------------------------------------------功能:求一个四位数的各位数字的立方和。

-----------------------------------------------*/#include <stdio.h>void TestFunc();int fun(int n){/*********Begin**********/int d,s=0;while (n>0){d=n%10;s+=d*d*d;n/=10;}return s;/********** End **********/}main(){int k;k=fun(1234);printf("k=%d\n",k);TestFunc();void TestFunc(){FILE *IN,*OUT;int iIN,iOUT,i;IN=fopen("in.dat","r");if(IN==NULL){printf("Please Verify The Currernt Dir..it May Be Changed"); }OUT=fopen("out.dat","w");if(OUT==NULL){printf("Please Verify The Current Dir.. it May Be Changed"); }for(i=0;i<5;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}/*------------------------------------------------【程序设计】--------------------------------------------------功能:将tt数组中的小写字母都改为对应的大写字母,其它字符删除。

例如:a4 bdsk88*,结果:ABDSK------------------------------------------------*/void TestFunc();#include <stdio.h>#include <string.h>void fun(char tt[]){/*********Begin**********/int i,j=0;for(i=0;tt[i];i++)if(('a'<=tt[i])&&(tt[i]<='z'))tt[j++]=tt[i]-32;tt[j]=0;/********** End **********/}main(){ char tt[81];printf("\nPlease enter a string:");gets(tt);fun(tt);printf("\nThe result string is:\n%s",tt);TestFunc();}void TestFunc(){FILE *IN,*OUT;char s[100];IN=fopen("in.dat","r");if(IN==NULL){printf("Read FILE Error");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("Write FILE Error");}fgets(s,100,IN);fun(s);fprintf(OUT,"%s",s);fclose(IN);fclose(OUT);}程序改错/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:用下面的和式求圆周率的近似值。

相关主题