手机版
您的当前位置: 诚达文秘网 > 范文大全 > 公文范文 > 11253本科《C语言程序设计》(完整)

11253本科《C语言程序设计》(完整)

来源:公文范文 时间:2022-11-02 16:00:14

下面是小编为大家整理的11253本科《C语言程序设计》(完整),供大家参考。

11253本科《C语言程序设计》(完整)

 

  本科 《C C 语言程序设计 A A 》 复习资料

 一、单选题

 1.在每个 C 语言程序中都必须包含有这样一个函数,该函数的函数名为(A)。

  A. main

 B. MAIN

 C. name

 D. function

  2.每个 C 语言程序文件的编译错误分为(B)类。

  A. 1

  B. 2

  C. 3

  D. 4

  3. 字符串"a+b=12\n"的长度为(B)。

  A. 6

 B. 7

 C. 8

 D. 9

  4. 在 switch 语句的每个 case 块中,假定都是以 break 语句结束的,则此 switch 语句容易被改写为(D)语句。

 A. for

 B. while

 C. do

 D. if

  5. 在下面的 do-while 循环语句中,其循环体语句被执行的次数为(C)。

  int i=0; do i++; while(i<10);

  A. 8

 B. 9

 C. 10

 D. 11

  6. 将两个字符串连接起来组成一个字符串时,选用的字符串函数为(C)。

 A. strlen()

 B. strcpy()

  C. strcat()

 D. strcmp()

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

 A. 数组的首地址

 B. 数组中第一个元素的值

  C. 数组中全部元素的值

 D. 数组元素的个数

  8. 假定 a 为一个整数类型的数组名,整数类型的长度为 4,则元素 a[4]的地址比 a 数组的首地址大(C)个字节。

  A. 4

 B. 8

 C. 16

 D. 32

 9. 假定 s 被定义为指针类型 char *的变量,初始指向的字符串为"Hello world!",若要使变量 p 指向 s 所指向的字符串,则 p应定义为(A)。

  A. char *p=s;

  B. char *p=&s;

 C. char *p;p=*s;

 D. char *p; p=&s;

  10. 从一个数据文件中读入以换行符结束的一行字符串的函数为(B)。

  A. gets()

 B. fgets()

  C. getc()

 D. fgetc() 11.程序运行中需要从键盘上输入多于一个数据时,各数据之间默认使用(D)符号作为分隔符。

  A.空格或逗号

 B.逗号或回车

  C.逗号或分号

 D.空格或回车 12.逻辑表达式(x>0 && x<=10)的相反表达式为(A)。

  A.x<=0 || x>10

 B.x<=0 && x>10

  C.x<=0 || x<=10

  D.x>0 && x>10 13.当处理特定问题时的循环次数已知时,通常采用(A)循环来解决。

  A.for

 B.while

 C.do-while

 D.switch

 14.假定 i 的初值为 0,则在循环语句“while(i<n) {s+=i*i; i++;}”中循环体被执行的总次数为(B)。

  A.n-1

 B.n

 C.n+1

 D.n/2

  15 . 假 定 一 个 二 维 数 组 的 定 义 语 句 为 “ int a[3][4]={{3,4},{2,8,6}};”,则元素 a[1][2]的值为(C)。

  A.2

 B.4

 C.6

 D.8

  16.在下列选项中,不正确的函数原型格式为(C)。

  A.int Function(int a);

 B.void Function (char);

  C.int Function(a);

 D.void int(double* a);

  17.假定 p 是一个指向 float 型数据的指针,则 p+1 所指数据的地址比 p 所指数据的地址大(C)个字节。

  A.1

 B.2

 C.4

 D.8

  18.假定有定义为“int m=7, *p;”,则给 p 赋值的正确表达式为(B)。

  A.p=m

 B.p=&m

 C.*p=&m

 D.p=*m

  19.假定指针变量 p 定义为“int *p=malloc(sizeof(int));”,要释放 p 所指向的动态存储空间,应调用的函数为(A)。

  A . free(p)

 B . delete(p)

 C . free(*p)

 D.free(&p)

  20.C 语言中的系统函数 fopen()是( D)一个数据文件的函数。

  A.读取

 B.写入

 C.关闭

 D.打开 21. C 语言源程序文件的缺省扩展名为(D)。

  A. cpp

  B. exe

  C. obj

  D. C

  22.设 x 和 y 均为逻辑值,则 x && y 为真的条件是(A)。

 A. 它们均为真

 B. 其中一个为真

  C. 它们均为假

 D. 其中一个为假

  23. 在下列的符号常量定义中,正确的定义格式为(C)。

  A. #define M1

  B. const int M2 20

 C. #define M3 10

 D. const char mark

  24. for 循环语句能够被改写为(D)语句。

  A. 复合

 B. if

 C. switch

  D. while

  25. 在下面的一维数组定义中,错误的定义格式为(C)。

 A. int a[]={1,2,3}

 B. int a[10]={0}

 C. int a[]

 D. int a[5]

  26.下面的函数原型声明中存在语法错误的是(C)。

  A. AA(int a, int b)

  B. AA(int, int)

  C. AA(int a; int b;)

  D. AA(int a, int) 27. 假定 a 为一个数组名,则下面存在错误的表达式为的(B)。

  A. a[i]

 B. *a++

 C. *a

 D. *(a+1)

 28. 假定有定义为“int a[10], x, *pa=a;”,若要把数组a 中下标为 3 的元素值赋给 x,则不正确的赋值为(D)。

  A. x=pa[3]

 B. x=*(a+3)

 C. x=a[3]

  D. x=*pa+3

  29.char 类型的长度为(A)个字节。

  A. 1

  B. 2

 C. 3

  D. 4

  30. 向一个二进制文件中写入信息的函数为(D)。

  A. fgets()

 B. fputs()

  C. fread()

 D. fwrite() 31. 由 C 语言目标文件连接而成的可执行文件的缺省扩展名为(B)。

  A. cpp

  B. exe

 C. obj

 D. c

  32. 设有两条语句为“int a=12; a+=a*a;”,则执行结束后,a 的值为(C)。

  A. 12

 B. 144

 C. 156

 D. 288

 33. 带有随机函数调用的表达式 rand()%20 的值在(C)区间内。

  A. 1~19

 B. 1~20

 C. 0~19

  D. 0~20

  34. for 循环语句“for(i=0; i<n; i+=2) S;”中循环体 S 语句被执行的次数为(A)。

  A. (n+1)/2

 B. n/2+1

 C. n/2-1

 D. n-1

  35. 在下列的字符数组定义中,存在语法错误的是(D)。

 A. char a[20]="abcdefg";

 B. char a[]="x+y=55.";

 C. char a[15]={"1","2"};

  D. char a[10]="5";

  36. 若有一个函数原型为“double *function()”,则它的返回值类型为(B)。

  A. 实数型

 B. 实数指针型

  C. 函数指针型

 D. 数组型

  37. 在 C 语言中,所有预处理命令都是以(B)符号开头的。(B)

  A. *

  B. #

 C. &

 D. @

  38. 假定整数指针 p 所指数据单元的值为 30,p+1 所指数据单元的值为 40,则执行*p++后,p 所指数据单元的值为(A)。

  A. 40

 B. 30

  C. 70

 D. 10

  39. 若要使p指向二维整型数组a[10][20],则p的类型为(D)。

  A. int *

  B. int **

 C. int *[20]

 D. int(*)[20]

  40. 表示文件结束符的符号常量为(C)

  A. eof

 B. Eof

 C. EOF

 D. feof 41. C 语言程序中的基本功能模块为(D)。

 A.表达式

 B.标识符

 c.语句

 D.函数

 42.逻辑表达式(x>0||y==5)的相反表达式为(B)。

 A.x<=O||y!=5

 B.x<=O&&y!=5

 C.x>O||y!=5

 D.x>O&&y==5

 43.循环体至少被执行一次的循环语句为 (C)。

 A.for

 B.while

 C.do-while

 D.任一种循环

 44.假定 n 的值为 5,则表达式 n++的值为(B)。

 A.6

 B.5

 C.4

 D.7

 45.假定一个二维数组的定义为"int a[3][4]={{3,4},{2,8,6}}号",则元素 a[2][O]值为(A)。

 A.0

 B.2

 C.4

 D.6

 46.假定一个函数原型为"char *func(int n)",则该函数的返回类型为(D)。

 A. int

 B. int*

 c.char

 D.char* 47.假定 a 为一个字符数组名,则元素 a[i]的指针访问方式为(B)。

 A.a+i

  B.*(a+i)

 C.&a+i D.*a+i

 48.假定有语句为"int *p=calloc(10+20,sizeof(int)),则 p 所指向的动态数组中所包含的元素个数为(C)。

 A.10

 B.20

  c.30

  D.40

 49.十进制数 50 表示成符合 C 语言规定的八进制数为(D)。

 A. 20

  B.32

  C.62

  D.062

 50.若要以读和写两种操作方式打开一个二进制文件,当文件不存在时返回打开失败信息,则选用的打开方式字符串为(C)。

 A."r+"

 B."ab+"

 C. "rh+"

 D."wb+"

 二、 判断 题

 1.

 (√)

 2.

 (╳)

 3.

 (╳)

 4.

 (√)

 5.

 (╳)

 6.

 (╳)

 7. (√)

 8.

 (√)

 9.

 (√)

 10.

 (╳)

 11.

 (√)

 12.

  (╳)

 13.

 (√)

 14.

 (╳)

 15.

 (╳)

 16.

 (√)

 17. (√)

 18.

 (╳)

 19.

 (√)

  20. (╳)

 21. (√)

 22. (√)

 23. (╳)

 24. (╳)

 25.

 (√)

 26. (╳)

 27. (╳)

 28. (√)

 29. (√)

 30. (╳)

 31.

 (╳)

 32.

 (╳)

 33.

 (√)

 34.

 (√)

 35.

 (╳)

 36.

 (√)

 37.

 (╳)

 38.

 (√)

 39.

 (╳)

 40.

 (√)

 41. (√)

 42. (╳)

 43. (╳)

 44. (√)

 45. (╳)

  三、写出下列每个程序运行后的输出结果

 1. #include<stdio.h>

 void main() {

 int i,j,k=0;

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

 for(j=i; j<5; j++) k++;;

 printf("%d\n",k); } 运行结果:15

 2. #include<stdio.h>

  void main() {

  int x=20;

  int i=2;

  while(i<x) {

  if(x%i==0) {printf("%d ",i); x/=i;}

  i++; } } 运行结果:2

  5

  3. #include<stdio.h>

 void main() {

 int a[8]={70,63,54,95,40,75,90,66};

 int i, s=0;

 for(i=0; i<8; i++)

 if(a[i]>=70 && a[i]<=90) s+=a[i];

 printf("s=%d\n",s); } 运行结果:s=235

  4. #include<stdio.h>

 int WF(int x, int y) {

 x=x+y;

 y+=x;

 return x+y; }

 void main() {

 int x=3, y=5;

 printf("%d\n",WF(x,y)); } 运行结果:

 21

 5. #include<stdio.h>

 int LA(int *a, int n) {

 int i,s=0;

 for(i=0;i<n;i++) s+=a[i];

 return s; }

 void main() {

 int a[5]={1,2,3,4,5};

 int b=LA(a,5)+LA(a+1,3);

 printf("b=%d\n",b); } 运行结果:

 b=24

 6. #include<stdio.h>

 void main() {

 int x=5;

 switch(2*x-1) {

 case 4: printf("%d ",x); break;

 case 7: printf("%d ",2*x); break;

 case 10: printf("%d ",3*x); break;

 default: printf("%s ","default");

 }

 printf("%s\n","switch end.");

 } 运行结果:default

 switch end.

 7. #include<stdio.h>

 void main() {

 int f1,f2,i;

 f1=1;

 printf("%d ",f1);

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

 f2=3*f1+1;

  printf("%d ",f2);

 f1=f2;

 }

 printf("\n"); } 运行结果:

 1

  4

  13

  40

  121

 8. #include<stdio.h>

 void main() {

 int a[10]={12,39,26,41,55,63,72,40,83,95};

 int i, i1=0, i2=0;

 for(i=0;i<10;i++)

  if(a[i]%2==1) i1++; else i2++;

 printf("%d %d\n",i1,i2);

 } 运行结果:6

  4 9. #include<stdio.h>

 #include<string.h>

 void main( ) {

 char s[15]="567891234";

 int i, n=strlen(s) ;

 for(i=0; i<n/2; i++) {

 char c=s[i];

 s[i]=s[n-1-i];

 s[n-1-i]=c; }

 printf("%s\n",s);

 } 运行结果:432198765

 10. #include<stdio.h>

 int LB(int *a, int n) {

 int i,s=1;

 for(i=0;i<n;i++) s*=*a++;

 return s; }

 void main() {

 int a[]={1,2,3,4,2,4,5,2};

 int b=LB(a,4)+LB(a+3,3);

 printf("b=%d\n",b);

 } 运行结果:

 b=56

 11. #include<stdio.h>

 void main() {

 int i, s=0;

 for(i=1;;i++) {

 if(s>30) break;

 if(i%2==0) s+=i; }

 printf("s=%d\n",s);

 } 运行结果:s=42

 12. #include<stdio.h>

 void main() {

 int a[9]={36,25,48,24,55,40,18,66,20};

 int i, b1, b2;

 b1=b2=a[0];

 for(i=1; i<9; i++) {

 if(a[i]>b1) b1=a[i];

 if(a[i]<b2) b2=a[i];

 }

 printf("%d %d\n",b1,b2); } 运行结果:66

  18

 13. #include<stdio.h>

 void SB(char ch) {

 switch(ch) {

 case "A": case "a":

 printf("WW "); break;

 case "B": case "b":

 printf("GG "); break;

 default:

 printf("BB "); break; } }

 void main() {

 char a1="a",a2="B",a3="f";

 SB(a1);SB(a2);SB(a3);

 printf("\n");

 } 运行结果:WW

  GG

  BB

 14. #include<stdio.h>

  ...

诚达文秘网 https://www.rk1k.cn Copyright © 2019-2024 . 诚达文秘网 版权所有

Powered by 诚达文秘网 © All Rights Reserved. 备案号:浙ICP备19042126号-1

Top