当前位置:文档之家› c综合

c综合

一、选择题

题号1...选择题A:( 1分,正确答案A,学生答案 * )

阅读以下程序

#include

main()

{int case; float printf;

printf ("请输入 2 个数:");

scanf ("%d %f", &case, &printF);

printf ("%d %f\n", case, printF);}

该程序在编译时产生错误,其出错原因是()。

A:定义语句出错,case 是关键字,不能用作用户自定义标识符B:定义语句出错,printf 不能用作用户自定义标识符

C:定义语句无错,scanf 不能作为输入函数使用

D:定义语句无错,printf 不能输出 case 的值

题号2...选择题A:( 1分,正确答案 B,学生答案 * )

若有定义语句:int x=10;,则表达式 x-=x+x 的值为()。A:-20 B:-10 C:0 D:10

题号3...选择题A:( 1分,正确答案 D,学生答案 * )

有以下程序

#include

main()

{int a=1, b=0;

printf ("%d,", b=a+b);

printf ("%d\n", a=2*b);}

程序运行后的输出结果是()。

A:0,0 B:1,0 C:3,2 D:1,2

题号4...选择题A:( 1分,正确答案 A,学生答案 * )

有以下程序

#include

main()

{int c=0, k;

for(k=1; k<3; k++)

switch (k)

{default: c+=k;

case 2: c++; break;

case 4: c+=2; break;}

printf("%d\n", c);}

程序运行后的输出结果是()。

A:3B:5 C:7 D:9

题号5...选择题A:( 1分,正确答案 B,学生答案 * )

当需要定义一个函数时,以下标识符中,()不能用作函数名。A:scanf B:for C:_sum D:F2

题号6...选择题A:( 1分,正确答案 C,学生答案 * )

若要对a进行++运算,则a应具有以下说明()。

A:int a[3][2]; B:char *a[]={"12","ab"};

C:int b[10],*a=b; D:char (*a)(char);

题号7...选择题A:( 1分,正确答案 B,学生答案 * )

在定义任何一个函数时,下列选项中,()是不可缺少的。

A:函数名之前的数据类型B:函数名之后的一对圆括号

C:形式参数声明D:函数体内的语句

题号8...选择题A:( 1分,正确答案 D,学生答案 * )

已知某程序如下:

float p=1.5;

#define p 2.5

main()

{printf("%f",p);}

则main函数中标识符p代表的操作数是()。

A:float型变量B:double型变量 C:float型常量D:double型常量题号9...选择题A:( 1分,正确答案 A,学生答案 * )

已有声明"int s[2][3]",以下选项中()正确地引用了数组s中的基本元素。A:s[1>2][!1] B:s[2][0] C:s[1] D:s

题号10...选择题A:( 1分,正确答案 B,学生答案 * )

若有以下程序:

int x:

int f(int y)

{return 标识符;}

#include

int w:

main()

{in t z=2;f(z);…}

则在函数f中return语句后允许出现的标识符是()。

A:x或w B:x或y C:z或w D:NULL

题号11...选择题A:( 1分,正确答案 D,学生答案 * )

逻辑"异或"运算可描述为"a xor b",其中a和b为参加运算的两个操作数,运算结果为当且仅当a、b两个

操作数中只有一个为真时才为真,其他情况下均为假,以下表达式中()可以正确表示逻辑"异或"运算。

A:a||b B:a&&b C:(a&&b)&&!(a||b) D:(a||b)&&!(a&&b)

题号12...选择题A:( 1分,正确答案 C,学生答案 * )

以下跳转语句中,只有()可以选择不唯一的跳转目的地。

A:continue; B:break; C:goto 标识符; D:return;

题号13...选择题A:( 1分,正确答案 D,学生答案 C )

在缺省情况下,标准C的编译系统中预定义的标准输出流stdout直接连接的设备是()。

A:软盘B:硬盘C:键盘D:显示器

题号14...选择题A:( 1分,正确答案 A,学生答案 * )

一个用c语言编写的程序,()是必不可少的。

A:取名为main的函数定义B:#include C:变量声明 D:注释

以下声明中正确的是()。

A:int n=2,a[n]={10}; B:int n=10,*p[2]=&n; C:int n=10,a[2]={n}; D:int a[2][2]={10},(*p)[2]=a+1;

题号16...选择题A:( 1分,正确答案 A,学生答案 * )

已知数据类型定义和变量声明如下:

struct sk {int a;float b;} data[2],*p;

若有p=data,则以下对data[0]中成员a的引用中错误的是()。

A:data[0]->a B:data->a C:p->a D:(*p).a

题号17...选择题A:( 1分,正确答案 D,学生答案 * )

以下单目运算符均只需一个操作数,其中要求操作数的类型只能是指针型的是()。

A:& B:++ C:! D:*

题号18...选择题A:( 1分,正确答案 D,学生答案 * )

C语言规定,在一个源程序中main函数的位置()。

A:必须在最开始B:必须在最后 C:必须在预处理命令的后面D:可以在其他函数之前或之后

题号19...选择题A:( 1分,正确答案 D,学生答案 * )

以下选项中,()是C语言关键字。

A:printf B:include C:fun D:default

题号20...选择题A:( 1分,正确答案 A,学生答案 B )

已知有声明"int a=3,b=4,c;",则执行语句"c=1/2*(a+b);"后,c的值为()。A:0 B:3 C:3.5 D:4

题号21...选择题A:( 1分,正确答案 C,学生答案 * )

已知有声明"int a=3,b=4;",下列表达式中合法的是()。

A:a+b=7 B:a=|b| C:a=b=0 D:(a++)++

题号22...选择题A:( 1分,正确答案 D,学生答案 * )

已知有声明"char s[20]="Hello";",在程序运行过程中,若要想使数组s中的内容修改为"Good",

则以下语句中能够实现此功能的是()。

A:s="Good"; B:s[20]="Good"; C:strcat(s,"Good"); D:strcpy(s,"Good");

题号23...选择题A:( 1分,正确答案 A,学生答案 A )

已知有声明"int a[4][4]={{1,2,3,4},{5,6,7,8),{9,10,11,12},{13,14,15,16)};",

若需要引用值为12的数组元素,则下列选项中错误的是()。

A:*(a+2)+3 B:*(*(a+2)+3) C:*(a[2]+3) D:a[2][3]

题号24...选择题A:( 1分,正确答案 B,学生答案 * )

已知有声明"int n;float x,y;",则执行语句"y=n=x=3.89;"后,y的值为()。A:3 B:3.0 C:3.89 D:4.0

题号25...选择题A:( 1分,正确答案 C,学生答案 * )

已知有声明"int a=12,b=15,c;",则执行表达式"c=(a||(b-=a))"后,变量b和c 的值分别为( )。

A:3,1 B:15,12 C:15,1 D:3,12

下列叙述中,正确的是()。

A:C语言中的文件是流式文件,因此只能顺序存取文件中的数据

B:调用fopen函数时若用"r"或"r+"模式打开一个文件,该文件必须在指定存储位置或默认存储位置处存在

C:当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到该文件中的第1个数据

D:无论以何种模式打开一个已存在的文件,在进行了写操作后,原有文件中的全部数据必定被覆盖

题号27...选择题A:( 1分,正确答案 C,学生答案 * )

以下叙述中正确的是()。

A:C语言系统以函数为单位编译源程序

B:main函数必须放在程序开始

C:用户定义的函数可以被一个或多个函数调用任意多次

D:在一个函数体内可以定义另外一个函数

题号28...选择题A:( 1分,正确答案 B,学生答案 * )

已知int类型数据在内存中存储长度为2个字节,以下语句中能正确输出整数32768的是()。

A:printf("%d",32768); B:printf("%ld",32768); C:printf("%f",32768); D:printf("%c",32768);

题号29...选择题A:( 1分,正确答案 D,学生答案 * )

已知有声明"int a=3,b=4,c=5;",以下表达式中值为0的是()。

A:a&&b B:a<=b C:a||b&&c D:!(!c||1)

题号30...选择题A:( 1分,正确答案 B,学生答案 * )

已知有声明"int m[]={5,4,3,2,1},i=0;",下列对m数组元素的引用中,错误是()。

A:m[++i] B:m[5] C:m[2*2] D:m[m[4]]

题号31...选择题A:( 1分,正确答案 D,学生答案 * )

若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是()。A:实参和其对应的形参占用同一存储单元B:形参不占用存储单元

C:同名的实参和形参占用同一存储单元D:形参和实参占用不同的存储单元题号32...选择题A:( 1分,正确答案 B,学生答案 * )

C语言源程序的基本单位是()。

A:过程 B:函数 C:子程序 D:标识符

题号33...选择题A:( 1分,正确答案 C,学生答案 B )

下列程序的输出结果是()。

main( )

{ int a=7,b=5;

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

}

A:5 B:1 C:0 D:不确定值

题号34...选择题A:( 1分,正确答案 B,学生答案 * )

假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。

A:7 B:8 C:9 D:2

设a为int型变量,执行下列赋值语句后,a的取值分别是()。

a=125.534; a=(int)125.521%4; a=5<<2;

A:125,31,1 B:125,1,20 C:125,31,20 D:125.534,2,20

题号36...选择题A:( 1分,正确答案 C,学生答案 * )

设有如下程序段,下面描述中正确的是()。

int k=10; while(k=0) k=k-1;

A:循环执行一次 B:循环是无限循环

C:循环体语句一次也不执行D:循环体语句执行一次

题号37...选择题A:( 1分,正确答案 A,学生答案 * )

以下程序的输出结果为()。

int i;

void prt( )

{ for(i=5;i<8;i++)printf("%c",'*');

printf("\t");

}

main( )

{for(i=5;i<=8;i++) prt( );

}

A:*** B:*** *** *** *** C:*** *** D:* * *

题号38...选择题A:( 1分,正确答案 A,学生答案 * )

以下函数调用语句中含有()个实参。

func((e1,e2),(e3,e4,e5));

A:2 B:3 C:5 D:语法错误

题号39...选择题A:( 1分,正确答案 A,学生答案 * )

下面选项中正确的赋值语句是(设 char a[5],*p=a;)()。

A:p="abcd"; B:a="abcd"; C:*p="abcd"; D:*a="abcd";

题号40...选择题A:( 1分,正确答案 D,学生答案 * )

C语言中的文件类型只有()。

A:索引文件和文本文件两种B:文本文件一种

C:二进制文件一种D:ASCII码文件和二进制文件两种

题号41...选择题B:( 2分,正确答案 D,学生答案 * )

以下函数 findmax 拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。

#define MIN -2147483647

int findmax (int x[],int n)

{int i,max;

for(i=0;i

{max=MIN;

if(max

return max;}

造成错误的原因是()。

A:定义语句 int i,max;中 max 未赋初值B:赋值语句 max=MIN;中,不应给max 赋 MIN 值

C:语句 if(max

题号42...选择题B:( 2分,正确答案 A,学生答案 A )

若有定义语句:int a[4][10],*p,*q[4];且 0≤i<4,则错误的赋值是()。A:p=a B:q[i]=a[i] C:p=a[i] D:p=&a[2][1]

题号43...选择题B:( 2分,正确答案 C,学生答案 * )

有以下程序

#include

main()

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

for(i=0;i<4;i++) switch(i%2)

{case 0 : switch(a[i]%2)

{case 0 : a[i]++;break;

case 1 : a[i]--;

}break;

case 1 : a[i]=0;}

for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}

程序运行后的输出结果是()。

A:3 3 4 4 B:2 0 5 0 C:3 0 4 0 D:0 3 0 4

题号44...选择题B:( 2分,正确答案 A,学生答案 * )

下列函数的功能是()。

fun(char *a,char *b)

{while((*b=*a)!='\0'){a++; b++;} }

A:将 a 所指字符串赋给 b 所指空间B:使指针 b 指向 a 所指字符串

C:将 a 所指字符串和 b 所指字符串进行比较 D:检查 a 和 b 所指字符串中是否有'\0'

题号45...选择题B:( 2分,正确答案 C,学生答案 * )

有以下程序

# include

int f(int n);

main()

{int a=3,s;

s=f(a);s=s+f(a);printf("%d\n",s);}

int f(int n)

{static int a=1; n+=a++; return n;}

程序运行后的输出结果是()。

A:7 B:8 C:9 D:10

题号46...选择题B:( 2分,正确答案 A,学生答案 * )

有以下程序

# include

# define f(x) x*x*x

main()

{int a=3,s,t;

s=f(a+1);t=f((a+1));

printf("%d,%d\n",s,t);}

程序运行后的输出结果是()。

A:10,64 B:10,10 C:64,10 D:64,64

题号47...选择题B:( 2分,正确答案 B,学生答案 * )

下面结构体的定义语句中,错误的是()。

A:struct ord {int x; int y; int z;}; struct ord a; B:struct ord {int x; int y; int z;} struct ord a;

C:struct ord {int x; int y; int z;}a; D:struct {int x; int y; int z;} a;

题号48...选择题B:( 2分,正确答案 A,学生答案 C )

设有定义:char *c;,以下选项中能够使字符型指针 c 正确指向一个字符串的是()。

A:char str[]="string";c=str; B:scanf("%s",c); C:c=getchar();

D:c=*string";

题号49...选择题B:( 2分,正确答案 D,学生答案 * )

有以下程序

#include

#include

struct A

{int a; char b[10]; double c;};

struct A f(struct A t);

main()

{struct A a={1001,"ZhangDa",1098.0};

a=f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}

struct A f(struct A t)

{t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;return t;}

程序运行后的输出结果是()。

A:1001,ZhangDa,1098.0 B:1002,ZhangDa,1202.0

C:1001,ChangRong,1098.0 D:1002,ChangRong,1202.0

题号50...选择题B:( 2分,正确答案 C,学生答案 C )

下列关于 C 语言文件的叙述中正确的是()。

A:文件由一系列数据依次排列组成,只能构成二进制文件

B:文件由结构序列组成,可以构成二进制文件或文本文件

C:文件由数据序列组成,可以构成二进制文件或文本文件

D:文件由字符序列组成,其类型只能是文本文件

题号51...选择题B:( 2分,正确答案 D,学生答案 * )

下列程序段执行后的结果为()。

main()

{

static int a[3][3]={1,3,5,7,9,11,13,15,17},y,x,*p=&a[2][2];

for(x=0;x<3;x++) y+=*(p-4*x);

printf("\n%d",y);}

A:45 B:33 C:17 D:27

题号52...选择题B:( 2分,正确答案 D,学生答案 * )

若有声明:

int k,a,b;

unsigned long y=5;

double x=1.23;

则以下表达式中正确的是()。

A:x%(-5) B:x=y[6] C:k=(a=l,b=2,&a+&b) D:a+=a-=(b=2)*(a=3) 题号53...选择题B:( 2分,正确答案 C,学生答案 * )

若有以下声明和定义:

void fun(int c){printf("%d",c);}

main()

{void(*a)(int)=fun,*b(int),(*c)(int);

/*调用fun函数语句位置*/}

void *b(int c){}

如果在main函数中需要调用fun函数,以下调用语句中错误的是( )。

A:fun(1); B:(*a)(1); C:b=fun;(*b)(1); D:c=a;(*c)(1);

题号54..选择题A:( 1分,正确答案 C,学生答案 * )

以下选项中,能用作用户标识符的是()。

A:void B:8_8 C:_0_ D:unsigned

题号55...选择题A:( 1分,正确答案 C,学生答案 * )

设有定义:int a=l, b=2, c=3;,以下语句中执行效果与其它三个不同的是()。A:if(a>b)c=a,a=b,b=c; B:if(a>b){c=a,a=b,b=c;}

C:if(a>b)c=a;a=b;b=c; D:if(a>b){c=a;a=b;b=c;}

题号56...选择题A:( 1分,正确答案 D,学生答案 * )

已有声明语句"unsigned char ch;",与表达式"ch='B'"的值不相同的表达式是()。(注释:字符A的Ascii码以十进制表示为65)

A:ch=0x42 B:ch=0102 C:ch='\102' D:ch=066

题号57...选择题A:( 1分,正确答案 B,学生答案 * )

以下对于break语句使用的正确描述是()。

A:可以出现在程序中的任何位置 B:只能出现在循环或switch结构中

C:只能出现在switch结构中 D:只能出现在循环结构中

题号58...选择题A:( 1分,正确答案 B,学生答案 * )

若有声明语句"int a=5,b=4,c=3,*p=&a;",则下列()表达式语句是正确的。A:(*p)++=c; B:printf(a%4==0?"%3d\n":"%3d",*p); C:*(*p)++;

D:a>20?return *p-20:return *p-1;

题号59...选择题A:( 1分,正确答案 A,学生答案 * )

设 int x=2,y=3,z=(++x<=y--)?((--y==1)?y--:--y):y--; 则x,y,z的值为()。A:3,0,1 B:2,0,0 C:3,1,1 D:2,2,1

题号60..选择题A:( 1分,正确答案 B,学生答案 * )

若有函数fun的定义为

void fun(…)

{static int a=1;

...}

则下列叙述中不正确的是()。

A:在每次调用fun函数时,变量a的值是上次调用结束时a的值

B:在fun函数之外,可以用变量名a直接引用a的值

C:在其他函数中,可以出现声明double a=2.5;

D:fun函数的形式参数不能取名为a

题号61...选择题A:( 1分,正确答案 D,学生答案 * )

已知有声明 char c='1';int x=300;float t=35000;double d=3.1234567e10; 则以下表达式求值时除( )外其结果都可能是不准确的。

A:x=t/c B:t=d/x C:t=d/le5f D:t=x+c

题号62...选择题A:( 1分,正确答案 C,学生答案 * )

以下叙述中正确的是()。

A:C语言系统以函数为单位编译源程序 B:main函数必须放在程序开始

C:用户定义的函数可以被一个或多个函数调用任意多次

D:在一个函数体内可以定义另外一个函数

题号63...选择题A:( 1分,正确答案 C,学生答案 * )

以下选项中,不能用作c语言标识符的是()。

A:print B:FOR C:&a D:_00

题号64...选择题A:( 1分,正确答案 C,学生答案 * )

已知有声明"long x,y;"且x中整数的十进制表示有n位数字(4

A:y=x/(10*(n-1)) B:y=x%(10*(n-1)) C:y=x%(long)pow(10,n-1) D:y=x%(10^(n-1))

题号65...选择题A:( 1分,正确答案 A,学生答案 * )

已知有声明 char s[80]; ,若需要将键盘输入的一个不含空格的字符串保存到数组中,则下列语句中正确的是()。

A:scanf("%s",s); B:scanf("%s",s[0]); C:s=gets();D:s=getchar(); 题号66...选择题A:( 1分,正确答案 B,学生答案 * )

在C语言程序中,以下说法正确的是()。

A:函数的定义可以嵌套,但函数的调用不可以嵌套

B:函数的定义不可以嵌套,但函数的调用可以嵌套

C:函数的定义和函数的调用都不可以嵌套 D:函数的定义和函数的调用都可以嵌套

题号67...选择题A:( 1分,正确答案 A,学生答案 * )

设有以下定义,值为5的枚举常量是()。

enum week{sun,mon=4,tue,wed,thu,fri,sat} w;

A:tue B:sat C:fri D:thu

题号68...选择题B:( 2分,正确答案 C,学生答案 * )

有以下定义语句,编译时会出现编译错误的是()。

A:char a='a'; B:char a='\n'; C:char a='aa'; D:char a='\x2d'; 题号69...选择题B:( 2分,正确答案 A,学生答案 * )

有以下程序

#include

main()

{ char c1,c2;

c1='A'+'8'-'4';

c2='A'+'8'-'5';

printf("%c,%d\n",c1,c2);}

已知字母 A 的 ASCII 码为 65,程序运行后的输出结果是()。

A:E,68 B:D,69 C:E, D D:输出无定值

题号70..选择题B:( 2分,正确答案 C,学生答案 * )

有以下程序

#include

void fun (int p)

{int d=2;

p=d++; printf("%d",p);}

main()

{int a=1;fun(a); printf("%d\n",a);}

程序运行后的输出结果是()。

A:32 B:12 C:21 D:22

题号71..选择题B:( 2分,正确答案 C,学生答案 A )

有以下程序

#include

#include

main()

{char str[][20]={"One*World","One*Dream!"},*p=str[1]; printf("%d,",strlen(p));printf("%s\n",p);}

程序运行后的输出结果是()。

A:9,One*World B:9,One*Dream! C:10,One*Dream! D:10,One*World 题号72...选择题B:( 2分,正确答案 B,学生答案 * )

设有定义如下;

typedef stuct{int x,y;}pOINT;

typedef enum{RED,YELLOW,BLUE,GREEN}COLOR;

struct {pOINT xy;COLOR c;}pixel,*p=&pixel;

以下对变量pixel的赋值操作中正确的是( )。

A:pixel={1,2,BLUE}; B:p->xy.x=1;p->xy.y=2;p->c=BLUE;

C:scanf("%d%d%d",p->xy.x,p->xy.y,&pixel.c); D:pixel.color=2; 题号73...选择题B:( 2分,正确答案 C,学生答案 * )

已有预处理命令和声明如下:

#define N 10

int a=2,c=1;

double b=1.2;

下述程序段正确的是()。

A:switch(a)

{case c: a--;break;

case c+1:a++;break;}

B:switch(a)

{case N>0:a=1;break;

case 1:a=O;break;}

C:switch(a)

{case 2: b++;break;

case '0': b=3;}

D:switch(b)

{case 1.0: b++;break;

case 1.2: b=1;break;}

题号74...选择题B:( 2分,正确答案 B,学生答案 * )

设有以下程序段,则值为6的表达式是()。

struct st { int n; struct st *next;};

static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p;

p=&a[0];

A:p++->n B:++p->n C:p->n++ D:(*p).n++

题号75...选择题B:( 2分,正确答案 A,学生答案 * )

以下程序的输出结果为()。

#include "stdio.h"

void xy(int *x,int *y)

{int *t;t=x;x=y;y=t;}

int main()

{int a=7,b=8,*x=&a,*y=&b;xy(x,y);

printf("%d,%d,%d,%d",a,b,*x,*y);}

A:7,8,7,8 B:7,8,8,7 C:8,7,7,8 D:8,7,8,7

题号76...选择题A:( 1分,正确答案 D,学生答案 D )

以下叙述中正确的是()。

A:程序设计的任务就是编写程序代码并上机调试

B:程序设计的任务就是确定所用数据结构

C:程序设计的任务就是确定所用算法

D:以上三种说法都不完整

题号77...选择题A:( 1分,正确答案 B,学生答案 B )

表达式:(int)((double)9/2)-(9)%2 的值是()。

A:0 B:3 C:4 D:5

题号78...选择题A:( 1分,正确答案 C,学生答案 B )

若有声明"int a [5],*b=a,(*c)[3],*d[3];",则在以下表达式中有语法错误的是()。 A:a[0]=0 B:b[0]=0 C:c[0]=0 D:d[0]=0 题号79...选择题A:( 1分,正确答案 B,学生答案 C )

设指针变量占2个字节的内存空间,若有声明"char *p="123";int c;",则执行语句"c=sizeof(p);"后,c的值为( )。

A:1 B:2 C:3 D:4

题号80...选择题A:( 1分,正确答案 D,学生答案 D )

已知有声明 int i,a[10],*p=a; ,现需要将1到l0保存到元素a[0]到a[9]中,以下程序段中不能实现这一功能的是()。

A:for(i=0;i<10;i++) a[i]=i+1; B:for(i=0;i<10;i++) p[i]=i+1; C:i=1;while(p

有以下程序

#include

main()

{int n=2,k=0;

while (k++ &&n++>2);

printf("%d %d\n",k,n);

}

程序运行后的输出结果是()。

A:0 2 B:1 3 C:5 7 D:l 2

题号82...选择题B:( 2分,正确答案 B,学生答案 B )

有以下程序

#include

#include

main()

{char a[10]="abcd";

printf("%d,%d\n",strlen(a),sizeof(a));}

程序运行后的输出结果是()。

A:7,4 B:4,10 C:8,8 D:10,10

题号83..选择题B:( 2分,正确答案 D,学生答案 D )

下面是有关 C 语言字符数组的描述,其中错误的是()。

A:不可以用赋值语句给字符数组名赋字符串

B:可以用输入语句把字符串整体输入给字符数组

C:字符数组中的内容不一定是字符串 D:字符数组只能存放字符串题号84...选择题B:( 2分,正确答案 A,学生答案 D )

设有以下函数:void fun(int n,char *s) {……}

则下面对函数指针的定义和赋值均正确的是()。

A:void (*pf)(); pf=fun; B:void *pf(); pf=fun;

C:void *pf(); *pf=fun; D:void(*pf)(int,char);pf=&fun;题号85...选择题B:( 2分,正确答案 C,学生答案 C )

若有以下程序段

int r=8;

printf("%d\n",r>>1);

输出结果是()。

A:16 B:8 C:4 D:2

题号86..选择题B:( 2分,正确答案 C,学生答案 B )

执行了以下程序段后,x、w的值为()。

int x=0,y=1,z=2,w;

if(x++) w=x;

else if(x++&y>=1) w=y;

else if(x++&&z>1) w=z;

A:0、1 B:1、1 C:2、1 D:3、2

题号87...选择题B:( 2分,正确答案 A,学生答案 A )

以下程序的输出结果为()。

#define ADD(x) x*x

main( )

{ int a=4,b=6,c=7,d=ADD(a+b)*c;

printf("d=%d",d); }

A:d=70 B:d=80 C:d=140 D:d=700

题号88...选择题A:( 1分,正确答案 B,学生答案 * )

有以下程序

#include

main()

{char s[]={"012xy"}; int i, n=0;

for (i=0; s[i]!=0; i++) if(s[i]>='a' &&s[i]<='z') n++;

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

}

程序运行后的输出结果是()。

A:0 B:2 C:3 D:5

题号89...选择题A:( 1分,正确答案 A,学生答案 A )

以下程序段中,与语句:k=a>b?(b>c ? 1 : 0) : 0;功能相同的是()。

A:if((a>b) && (b>c)) k=l; else k=0; B:if((a>b)||(b>c))k=l; else k=0;

C:if(a<=b)k=0; else if(b<=c)k=1; D:if(a>b) k=l; else if(b>c)k=1; else k=0;

题号90...选择题B:( 2分,正确答案 C,学生答案 C )

设有函数f的定义如下;

void f(int x,int *y)

{ *y=x*x*x;}

main()

{int i,c[4]={1,2,3,4},s[4]={0};

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

{_________/*调用f函数*/

printf("%d",s[i]);}

若在main函数中欲调用f函数,则正确的调用语句是()

A:f(c,s); B:f(c[i],s[i]); C:f(*(c+i),&s[i]); D:f(c+i,s+i); 题号91...选择题B:( 2分,正确答案 B,学生答案)

已有数据类型定义和变量声明如下:

struct person

{int num;

char name[20],sex;

strrut{int cla ;char prof[20];}in;

}a={20,"Li ning",'M',{5,"computer"}},*p=&a;

下列语句中正确的是()。

A:printf("%s",a->name); B:printf("%s",p->in.prof);

C:printf("%s",*https://www.doczj.com/doc/5912370041.html,); D:printf("%s",p->in->prof);

题号92...选择题B:( 2分,正确答案 B,学生答案 C )

有以下程序

#include

main()

{int m=1, n=2, *p=&m, *q=&n, *r;

r=p; p=q; q=r;

printf("%d,%d,%d,%d\n",m,n,*p,*q);}

程序运行后的输出结果是()。

A:1,2,1,2 B:1,2,2,1 C:2,1,2,1 D:2,1,1,2

二、判断题

题号1...判断题:

int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A。()(对或错)

题号2...判断题:

break语句用在循环体中,可结束本层循环,continue语句用在循环体中,可结束本次循环。()(对或错)

题号3...判断题:

函数的递归调用不过是一个函数直接或间接地调用它自身。()(对或错)

题号4...判断题:

char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。()(对或错)

题号5.判断题:

函数strlen("ASDFG\n")的值是7。()(对或错)

题号6..判断题:

用fopen("file","r+");打开的文件"file"可以进行修改。()(对或错)

题号7..判断题:

通过return语句,函数可以带回一个或一个以上的返回值。()(对或错)

题号8...判断题:

结构体类型只有一种。()(对或错)

题号9...判断题:

若有定义:char *p(char a[10]);则p是函数名。()(对或错)

三、填空题

题号1...填空题

若有语句 double x=17; int y;,当执行 y=(int)(x/5)%2;之后 y 的值为_______ 。1

题号2...填空题:

以下程序运行后的输出结果是_____________。10

#include

main()

{int x=20;

printf("%d",0

printf("%d",0

题号3...填空题:

有以下程序

#include

main()

{int f,f1,f2,i;

f1=0; f2=1;

printf("%d,%d", f1,f2);

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

{f= f1+f2; printf("%d",f);

f1=f2; f2=f;}

}

程序运行后的输出结果是___________。0,1123

题号4...填空题:

有以下程序

#include

int a=5;

void fun(int b)

{int a=10;

a+=b; printf("%d",a);

}

main()

{int c=20;

fun(c); a+=c; printf("%d",a);}

程序运行后的输出结果是________________3025

题号5...填空题:

有以下程序

#include

main()

{char a[20]="How are you?",b[20];

scanf("%s",b); printf("%s %s",a,b);}

程序运行时从键盘输入:How are you?<回车>则输出结果为________________。How are you? How

题号6...填空题:

若有定义语句:int a=5;,则表达式:a++的值是_____________。5

题号7...填空题:

以下程序运行后的输出结果是__________ 。5

#include

main()

{int a=1,b=7;

do {

b=b/2; a+=b;

} while (b>1);

printf ("%d",a); }

题号8...填空题:

有以下程序

#include

typedef struct

{ int num; double s; } REC;

void funl(REC x) {x.num=23; x.s=88.5;}

main()

{REC a={16,90.0}; funl (a); printf("%d",a.num);}

程序运行后的输出结果是____________________ 。16

题号9...填空题:

有以下程序:

#include

fun(int x)

{if(x/2>0) fun(x/2);

printf("%d", x);}

main()

{fun(6);}

程序运行后的输出结果是___________________136

题号10...填空题:

设有定义:

struct person

{int ID; char name[12];}p;

请将 scanf("%d",______________); 语句补充完整,使其能够为结构体变量 p 的成员 ID确读入数据。 p.ID

四、程序填空题

题号1...实验_程序填空题:

给定程序中,函数fun的功能是:将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。例如,形参s所指的字符串为:abs5defl261km8,程序执行后的输出结果为:22。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在blank.c中。不得增行或删行,也不得更改程序的结构!上传完整程序代码!

#include

#include

#include

int fun(char *s)

{int sum=0;//空1

while(*s) {

if(isdigit(*s)) sum+= *s- 48 ;//空2

s++;//空3

}

return sum ;//空4

}

main()

{char s[80]; int n;

scanf("%s",s);

n=fun(s);

printf("The result is: %d",n);

}

题号2...实验_程序填空题:

下列程序求Sn=a+aa+aaa+……+aa…aa(n个a)的值,其中a是一个数字。例如,若a=2, n=5时,Sn=2+22+222+2222+22222,其值应为24690。请写出完整程序。注意:源程序存放在blank.c中。不得增行或删行,也不得更改程序的结构!上

传完整程序代码!

#include "stdio.h"

main()

{

int a,n,count=1,sn=0,tn=0;//空1

scanf("%d%d",&a,&n);//空2

while(count<=n){

tn+=a;

sn+=tn;//空3

a*=10;//空4

count++;

}

printf("%d",sn);

} #include "stdio.h"

main()

{

int a,n,count=1,sn,tn=0;

scanf("%d%d",&a,&n);

while(count<=n){

tn+=a;

sn+=tn;

tn*=10;

count++;

}

printf("%d",sn);

}

题号3...实验_程序填空题:

输入1个长整数,求各位数字的平方和,请写出完整程序。源程序存放在blank.c 中。

注意:不得增行或删行,也不得更改程序的结构!上传完整程序!

#include

int main()

{

int digit;

long in,s;

scanf("%ld",&in);

if(in<0)in=-in;//空1

s=0;//空2

while(in>0){

digit=in%10;//空3

s=s+digit*digit;

in=in/10;//空4

}

printf("sum=%ld", s);

}

题号4...实验_程序填空题:

有一个 3*4 矩阵,求其中的最大元素。请写出完整程序。

注意:源程序存放在blank.c中。不得增行或删行,也不得更改程序的结构! 上传完整程序代码!

#include

max_value(int array[][4])//空1

{

int i,j,max;

max=array[0][0];

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

for(j=0;j<4;j++)

if(array[i][j]>max)

max=array[i][j];

return(max);//空2

}

main( )

{

int a[3][4],i,j;//空3

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

for(j=0;j<4;j++)

scanf("%d",&a[i][j]);//空4

printf("max value is %d",max_value(a));

}

题号5..实验_程序填空题:

输入x、y两个整数,按先大后小的顺序输出x、y。请写出完整程序。注意:源程序存放在blank.c中。不得增行或删行,也不得更改程序的结构!上传完整程序代码!

#include "stdio.h"

main( )

{

int x,y, *px,*py,*p;//空1

scanf("%d%d",&x,&y);//空2

px=&x;//空3

py=&y;//空4

if(x

printf("x=%d,y=%d,",x,y);

printf("MAX=%d,MIN=%d",*px,*py);

}

#include "stdio.h"

main()

{

int a,n,count=1,sn=0,tn=0;//空1

scanf("%d%d",&a,&n);//空2

while(count<=n){

tn+=a;

sn+=tn;//空3

a*=10;//空4

count++;

}

printf("%d",sn);

}

五、程序修改题

题号1...实验_程序修改题:

给定程序modi.c中函数fun的功能是:计算()的值。例如,当n为5时,函数值应为:10.407143。f(x)函数定义如下:()请改正程序中的错误,使程序能输出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!上传完整程序代码!

#include

#include

double f(double x)//错1

{

if (x == 0.0 || x == 2.0)

return 0.0;

else if (x < 0.0)

return (x -1)/(x-2);

else

return (x +1)/(x-2);

}

double fun(int n)

{int i; double s=0.0, y;

for (i= -n; i<=n; i++)

{y=f(1.0*i); s += y;}

return s;//错2

}

main ()

{

int n;

scanf("%d",&n);

printf("%f", fun(n));

}

#include

#include

f(double x)

{

if (x == 0.0 || x == 2.0)

return 0.0;

else if (x < 0.0)

return (x -1)/(x-2);

else

return (x +1)/(x-2);

}

double fun(int n)

{int i; double s=0.0, y;

for (i= -n; i<=n; i++)

{y=f(1.0*(i+1)); s += y;}

return s;

}

main ()

{

int n;

scanf("%d",&n);

printf("%f", fun(n));

}

题号2..实验_程序修改题:

给定程序modi.c中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21、…例如,若给n输入7,该项的斐波拉契数值为:13。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。上传完整程序代码!

#include

long fun(int g)

{

switch(g)//错1

{case 0: return 0;

case 1 : ;case 2 : return 1 ;//错2

}

return(fun(g-1)+fun(g-2));

}

main()

{long fib; int n;

scanf("%d",&n);

fib=fun(n);

相关主题
文本预览
相关文档 最新文档