C语言上机题库(6)

2019-04-13 22:40

答案:B

第8题 (2.0分) 题号:508 int a=1,b=2,c=3;

if(a>c)b=a;a=c;c=b;则c的值为()。 A:1 B:2 C:3 D:不一定 答案:B

第9题 (2.0分) 题号:190

定义如下变量和数组:int i; int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )

for(i=0;i<3;i++) printf(\A:1 5 9 B:1 4 7 C:3 5 7 D:3 6 9 答案:C

第10题 (2.0分) 题号:181 C语言中函数调用的方式有()。 A:函数调用作为语句一种 B:函数调用作为函数表达式一种 C:函数调用作为语句或函数表达式两种 D:函数调用作为语句、函数表达式或函数参数三种 答案:D

第11题 (2.0分) 题号:3144 若x=2,y=3则x||y的结果是 A:0 B:1 C:2 D:3 答案:B

第12题 (2.0分) 题号:3131

判断两个字符串是否相等,正确的表达方式是 A:while(s1= =s2) B:while(s1=s2)

C:while(strcmp(s1,s2)==0) D:while(strcmp(s1,s2)=0) 答案:C

第13题 (2.0分) 题号:188 两个指针变量不可以()。 A:相加 B:比较 C:相减

D:指向同一地址 答案:A

第14题 (2.0分) 题号:569

C语言规定,在一个源程序中,main函数的位置()。 A:必须在最开始

B:必须在系统调用的库函数的后面 C:可以任意 D:必须在最后

答案:C

第15题 (2.0分) 题号:3112

下列语句定义pf为指向float类型变量f的指针,_____是正确的. A:float f, *pf = f; B:float f, *pf = &f; C:float *pf = &f, f; D:float f, pf 答案:B

━━━━━━━━━━━━━━━━ 三、程序填空 共1题 (共计15分) ━━━━━━━━━━━━━━━━

第1题 (15.0分) 题号:18

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

功能:将一个数组中的元素按逆序存放。

-------------------------------------------------------*/ #include #define N 7 void main () {

static int a[N]={12,9,16,5,7,2,1},k,s; printf(\ for (k=0;k

/***********SPACE***********/

for (k=0;k

/***********SPACE***********/ 【?】 ;

/***********SPACE***********/ 【?】 ; }

printf(\ for (k=0;k

/***********SPACE***********/ 【?】 (\} 答案:

=======(答案1)======= k++

=========或========= k= k + 1

=========或========= k+=1

=========或========= ++k

=======(答案2)======= a[k]=a[N-k-1]

=========或========= a[k]=a[N-1-k]

=========或========= a[k]=a[6-k]

=========或========= *(a+k)=*(a+N-k-1) =========或========= *(a+k)=*(a+N-1-k]

=========或========= a[k]=a[-1+N-k]

=========或========= a[k]=a[-1-k+N]

=========或========= a[k]=a[-k-1+N]

【程序改错】

--------------------------------------------------------

功能:求圆面积的二分之一。函数通过形参得到圆的半径。

例如:输入圆的半径值:19.527 输出为:s = =======(答案2)======= s=1.0/2*3.14159* r * r; =======(答案3)======= return s;

━━━━━━━━━━━━━━━━ 五、程序设计 共1题 (共计20分) FILE *IN,*OUT; int i; int iIN; long int iOUT; IN=fopen(\ if(IN==NULL) =========或========= a[k]=a[-k+N-1]

=========或========= *(a+k)=*(a+N-k-1) =========或========= a[6-k]=s

=======(答案3)======= a[N-k-1]=s

=========或========= a[N-1-k]=s

=========或========= a[6-k]=s

=========或========= a[N -k -1]=s

=========或========= *(a +N -k -1)=s

=======(答案4)======= printf

━━━━━━━━━━━━━━━━ 四、程序改错 共1题 (共计15分) ━━━━━━━━━━━━━━━━

第1题 (15.0分) 题号:381

/*------------------------------------------------------ 598.950017。

------------------------------------------------------*/ #include #include

/**********FOUND**********/ double fun( r) {

double s;

/**********FOUND**********/ s=1/2*3.14159* r * r;

/**********FOUND**********/ return r; }

void main() { double fun(float); float x;

printf ( \ scanf ( \

printf (\} 答案:

=======(答案1)======= float fun(float r)

=========或========= double fun(float r) =========或========= double fun(double r)

━━━━━━━━━━━━━━━━

第1题 (20.0分) 题号:33 /*------------------------------------------------ 【程序设计】

-------------------------------------------------- 功能:输入自然数m,用do-while语句求1~m的累计和。

------------------------------------------------*/ #include void wwjt(); long int fun(int n) {

/**********Program**********/

/********** End **********/ }

void main ()

{ long int fun(int n); int m;

scanf(\

printf(\累加和为:%ld\\n\ wwjt(); }

void wwjt() {

{

printf(\Verify The Currernt Dir..it May Be Changed\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\Verify The Current Dir.. it May Be Changed\ }

for(i=0;i<5;i++) {

fscanf(IN,\ iOUT=fun(iIN);

fprintf(OUT,\ } fclose(IN); fclose(OUT); }

答案: int i =1, sum =0; do { sum = sum + i;

i++;

} while ( i <= n );

return sum;

━━━━━━━━━━━━━━━ 一、判断 共10题 (共计20分) ━━━━━━━━━━━━━━━

第1题 (2.0分) 题号:1234

函数嵌套就是在定义函数的函数体中调用被定义的函数本身. 答案:N

第2题 (2.0分) 题号:1276

若定义int a[4]={1,2,3,4};若引用最后的元素,写法为a[4]. 答案:N

第3题 (2.0分) 题号:1148

对文件操作完毕之后,应该关闭文件,将缓冲区中的数据写入文件,以避免数据的丢失. 答案:Y

第4题 (2.0分) 题号:1277

用puts和gets函数可以输入输出带空格的字符串. 答案:Y

第5题 (2.0分) 题号:28

如果函数值的类型和return语句中表达式的值不一致,则以 函数类型为准。 答案:Y

第6题 (2.0分) 题号:6

在程序中定义了一个结构体类型后,可以多次用它来定义具有

该类型的变量。 答案:Y

第7题 (2.0分) 题号:1142

C语言不允许数组名作为函数参数进行函数调用. 答案:N

第8题 (2.0分) 题号:13

char *p=\的含义是定义字符型指针变量p,p的值是字符串\。 答案:N

第9题 (2.0分) 题号:1225

在给变量命名时,C语言区分大小写字母,即认为Name和name不是同一个变量. 答案:Y

第10题 (2.0分) 题号:1097

循环结构中的continue语句是使整个循环终止执行 答案:N

━━━━━━━━━━━━━━━━━ 二、单项选择 共15题 (共计30分) ━━━━━━━━━━━━━━━━━

第1题 (2.0分) 题号:568 一个C语言程序是由()。 A:一个主程序和若干子程序组成 B:函数组成 C:若干过程组成 D:若干子程序组成

答案:B

第2题 (2.0分) 题号:641

若有说明:int a[10];则对a数组元素的正确引用是()。 A:a[10] B:a[3,5] C:a(5) D:a[10-10] 答案:D

第3题 (2.0分) 题号:604 下面不正确的字符串常量是()。 A:'abc' B:\C:\D:\ \ 答案:A

第4题 (2.0分) 题号:3122

从循环体内某一层跳出,继续执行下一次循环判断的语句是 A:break语句 B:return语句 C:continue语句 D:空语句 答案:C

第5题 (2.0分) 题号:203 下面程序的输出结果是( )

main(){ int a[8]={8,7,6,5,4,3,2,1},*p; p=a+3; printf(\A:3 B:4 C:5 D:2 答案:A

第6题 (2.0分) 题号:493 C语言的注释定界符是()。 A:{ } B:[ ] C:\\* *\\ D:/* */ 答案:D

第7题 (2.0分) 题号:574

若变量已正确定义并赋值,下面符合C语言语法的表达式是()。 A:a:=b+1 B:a=b=c+2 C:int 18.5%3 D:a=a+7=c+b 答案:B

第8题 (2.0分) 题号:618

C语言中用于结构化程序设计的三种基本结构是()。

A:顺序结构、选择结构、循环结构 B:if、switch、break C:for、while、do-while D:if、for、continue

答案:A

第9题 (2.0分) 题号:3113

设变量定义为\a, b;\执行下列语句时,输入_____,则a和b的值都是10. scanf(\ A:10 10 B:10, 10 C:a=10 b=10 D:a=10, b=10 答案:D

第10题 (2.0分) 题号:110 C语言中,char类型数据占()。 A:1个字节 B:2个字节 C:4个字节 D:8个字节 答案:A

第11题 (2.0分) 题号:200 下面关于指针的叙述,正确的是( ). A:指针和地址是两个性质不同的概念 B:指针是对结构体变量来定义的 C:指针可以指向任何数据类型的变量 D:指针变量可以初始化 答案:D

第12题 (2.0分) 题号:669

若用数组名作为函数的实参,传递给形参的是()。

A:数组的首地址 B:数组第一个元素的值 C:数组中全部元素的值 D:数组元素的个数 答案:A

第13题 (2.0分) 题号:708 下面判断正确的是()。

A:char *a=\等价于 char *a;*a=\B:char

str[10]={\等价于

char

str[10];str[]={\

C:char *s=\等价于 char *s;s=\D:char c[4]=\等价于 char c[4]=d[4]=\ 答案:C

第14题 (2.0分) 题号:178

以下对C语言函数的描述中,正确的是()。 A:C程序必须由一个或一个以上的函数组成 B:C函数既可以嵌套定义又可以递归调用 C:函数必须有返回值,否则不能使用函数 D:C程序中有调用关系的所有函数必须放在同一个程序文件中 答案:A

第15题 (2.0分) 题号:534

相同结构体类型的变量之间,可以()。 A:相加 B:赋值

C:比较大小 D:地址相同 答案:B

━━━━━━━━━━━━━━━━ 三、程序填空 共1题 (共计15分) ━━━━━━━━━━━━━━━━

第1题 (15.0分) 题号:423

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

功能:考查字符串数组的应用。输出26个大写英文字母。

-------------------------------------------------------*/

#include void main (void) {

char string[256]; int i;

/***********SPACE***********/ for (i = 0; i < 26; 【?】)

/***********SPACE***********/ string[i] = 【?】; string[i] = '\\0';

/***********SPACE***********/ printf (\【?】); } 答案:

=======(答案1)======= i++

=========或========= ++i

=========或========= i=i+1

=========或========= i+=1

=======(答案2)======= 'A' + i

=========或========= i+'A'

=========或========= 65 + i

=========或========= i+65

=======(答案3)======= string

━━━━━━━━━━━━━━━━ 四、程序改错 共1题 (共计15分) ━━━━━━━━━━━━━━━━

第1题 (15.0分) 题号:410

/*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:输入一行字符,分别统计出其中英文字母、空格、数字和 其它字符的个数。

------------------------------------------------------*/

#include

void main() { char c;

int letters=0,space=0,digit=0,others=0; printf(\ /**********FOUND**********/ while((c=getchar())=='\\n') {

/**********FOUND**********/ if(c>='a'&&c<='z'&&c>='A'&&c<='Z') letters++;

/**********FOUND**********/ else if(c=!' ') space++;

else if(c>='0'&&c<='9') digit++; else others++; }

printf(\in all:char=%d space=%d digit=%d others=%d\\n\ space,digit,others); } 答案:

=======(答案1)======= while((c=getchar())!='\\n')

=======(答案2)=======

if( c>='a'&&c<='z' || c>='A'&&c<='Z' ) =========或=========

if( c<='z'&&c>='a' || c>='A'&&c<='Z' ) =========或=========

if( c <= 'z' && c >= 'a' || c >= 'A' && c<='Z' )

=======(答案3)======= else if(c==' ')

━━━━━━━━━━━━━━━━ 五、程序设计 共1题 (共计20分) ━━━━━━━━━━━━━━━━

第1题 (20.0分) 题号:378 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:编写函数用冒泡排序法对数组中的数据进行从小到 大的排序。

------------------------------------------------*/

#include #include void wwjt();

void sort(int a[],int n) {

/**********Program**********/

/********** End **********/ }

void main()

{ void sort(int a[],int n); int a[16],i; for(i=0;i<16;i++) a[i]=random(30)+15; for(i=0;i<16;i++) printf(\ printf(\ sort(a,16); for(i=0;i<16;i++) printf(\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int n; int i[10];

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(n=0;n<10;n++) {

fscanf(IN,\ } sort(i,10); for(n=0;n<10;n++) fprintf(OUT,\ fclose(IN); fclose(OUT); }

答案:---------------------- int i,j,t;

for(i=0;ia[j+1]) {t=a[j]; a[j]=a[j+1]; a[j+1]=t; }

----------------------


C语言上机题库(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:施工技术交底

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: