2024年2月19日发(作者:)
C 语 言 程 序 设 计
C程序设计—试题2
一、单项选择题
1. C语言程序的全部功能由( c )来完成。
A、 程序 B、 主程序 C、 函数 D、 过程
2. C的源程序要变成目标程序要经过步骤( c )。
A、 编辑 B、 连接 C、 编译 D、 汇编
3. 在下面表达式中选出值为0的表达式( d )。
A、 10=9+1 B、 7/5 C、 8 0 D、!(3*5)
4. 下面程序段执行后k的值是( a )。
int k=8;
switch (k)
{ case 6: k++;
case 7: k++; break;
case 8: k++;
default : k++; }
A、 10 B、 9 C、 11 D、 12
5. 为求S=10!的值,S为定义的类型为( C)。
A、 int B、 unsigned int C、 long int D、以上三种类型皆可
6.下面语句中,与if(x!=1) k++; 作用相同的语句是( b )。
A、 if (x<>0) k++ B、 if (x) k++ C、 if (x=1) k++ D、 if (1) k++
7. 设有char a ,b ; 下面函数调用中正确的是( D )。
A、 scanf (“%c%c”,a,b) B、 getchar(a) C、 putchar(a,b) D、putchar(a)
8. 下面程序的运行结果是(b )。
int x=10 , y=20 ;
main ( )
{ func ( );
printf (“%d,%dn”,x,y);
}
func ( )
{ int z;
z=x; x=y; y=z;
x=2*x ; y=2+y ; }
A、 10;20 B、 40,12 C、 20,10 D、 20,22
9.下面数组定义中,正确的是( a )。
A、 int a[4] [3]; B、 int a[4,3]; C、 int a [ ] [ ]; D、 int a [ ] [3]
10.C语言中判断逻辑值‘假’用( c)。
8
C 语 言 程 序 设 计
A、 false B、 1 C、 0 D、 非0值
11.设定义static char c[5]=”zbcd”; char *p=c;则下面正确的函数调用的语句是(d )。
A、 printf (“%c”,*c[0]); B、 printf (“%s,*c); C、 ptintf (“%s”,*p); D、 printf (“%c”,*p);
12.下面合法的C常量是( a )。
A、-0.1e-1 B、 0197 C、 5e3.5 D、 „program‟
13.设 struct student
{ int num ;
float score;
} stu ;
要给结构变量中的成员num赋值,正确的语句是 (D )。
A、 stu={1001,85.5}; B、 =1001 C、 stu num=1001; D、 =1001;
14.下列说法中正确的是( a)。
A. 在switch 语句中可以根据需要决定是否使用break 语句。
B. 在switch 语句中必须使用break 语句。
C. 在switch 语句中不能使用break 语句。
D. 以上说法都正确。
15.设有定义为static int a[3][3]={ {10,5,3},1,2,3,4,5,6};则a[1][1]和a[2][1]的值是 ( A)
A、 2和5 B、5和2 C、 10和1 D、1和4
16.以下运算符中,哪一种具有右结合性 (C )
A、 加法运算符 B、 求余运算符 C、 赋值运算符 D、 逗号运算符
17.凡未指明类型的函数,其蕴含的类型是(B)。
A、 void型 B、 int型 C、 float型 D、 任意类型
18.执行下面程序段后,y的值为(A )
x=10;
if (x>0) y=1;
else if (x,0) y=-1;
else y=0;
y=5;
A 、5 B、 0 C、 –1 D、 1
19.下面函数的类型是 ( b)。
fun (x,y)
float x,y;
{ float z;
z=x.y ?x:y;
return (z);
}
A 、没有类型 B、 int类型 C、 void 类型 D、 float 类型
20.设int a[20][30];则在引用其中元素a[I][j]是,I、j的取值范围是( D )。
A 、0i20, 0j30 B、 0
9
C 语 言 程 序 设 计
C、0
21.表达式k=(i=12,j=13,i+j), k+5的值是( c )。
A、 25 B、 17 C、 30 D、 18
22.执行下面程序段后,屏幕输出结果是(d )。
int I=5,s=10;
do {s=s+I ; I++;}
while(I<=5);
printf (“%d‟,s);
A、 5 B、 6 C、 10 D、 15
23.执行下面程序段后,屏幕输出结果是( b)。
static int a[10]={1,2,3,4,5,6,7,8,9,10};
int i, s=0;
for (i=0;i<10; i+=2) s=s+a[i];
printf (“%d”, s);
A、 55 B、 25 C、 30 D、 35
24.下面程序的输出是什么? (c )
#define R 3
#define PI 3.14
#define LEN 2*PI*R
main ( )
{int len=15;
printf(“LEN=%dn”,len=LEN);
}
A、 LEN=15 B、 LEN=18.84 C、 LEN=18 D、 LEN=2*PI*R
25 执行下面程序段的输出结果是什么?( b)
static char str [30]={“abc0defg”}
static char str [30]={“xyz”}
printf (“%s”, strcat (str1,str2));
A、 abc0defgxyz B、 abcxyz C、 xyzabc0defg D、 xyzabc
26.表达式(2>3)?4:(5<6)?7:8的值是(a )。
A、 7 B、 8 C、 4 D、 6
27.变量的储存类别分为下面四类,其中不是在内存中分配的是 (C )。
A、 auto B、 static C、 register D、 extern
28.下面表达式中,有语法错误的是 (b )。
A、 a<=b<=c B、 5=a C、 a==b D、 a=b
29.设有如下程序
main ( )
{ int a,b;
scanf (“%d, %d”,&a,&b)
if (a>b)
10
C 语 言 程 序 设 计
if (a>0) prinf (“AA”);
else if (b>-5) printf (“BB”);
else printf (“CC”);
printf (“n”);
}
要使运行输出的结果是CC,问运行时输入的a,b植应选下面中的哪一组 (B)。
A、 10 , 5 B、 -5 , -10 C、 0 , -3 D、 6 , 7
30.下面运算符中优先级最低的是 ( A.
)。
A、 = B、 % C、 && D、 *
31.已知char c 1=‟101‟,c 2=‟102‟; 执行printf (“%c, %c, c1, c2); 输出结果是 ( C)。
A、101,102 B、e,f C、 A,B D、 a,b
32.设 int i; char c; float f, g; 则下面表达式中类型为整型的是( d )。
A、 i+f B、f*c C、 (int)g*f D、 i*c
33.定义为void类型的函数,指的是( c )。
A、调用函数之后,被调用的函数的返回值不确定。
B、调用函数之后,被调用的函数的返回值为任意类型。
C、调用函数之后,被调用的函数没有返回值。
D、调用函数之后,被调用的函数不返回。
34.运行西面的程序段,其输出的结果是( D )。
static char a[ ]=”12345”;
char *p;
for (p=a+4; p>=a ; p-=2) printf (“%sn”.p );
A、12345 B、54321 C、 5 D、5
345 543 543 345
5 5 54321 12345
35. 已知有定义 static char s 1 [20]=”computer”; char s2 [20];要使 s2也存放字符 “computer” ,
可选用下面的语句 (D )。
A、s2=s1; B、s2=”computer”; C、s2=&s1; D、 strpy (s2,s1)
36.以下程序段的运行结果为 ( a)。
int i=8, j=10, m,n;
m=++i; n=j++;
printf (“%d,%d,%d,”,i,j,m,n);
A、9 , 11 , 9 , 10 B、9 , 11 ,8 , 10 C、9 , 11 , 9 , 11 D、8 , 10 , 8 , 10
37.设有 char str [5], *p=str; 选出正确的调用语句 (A)。
A、scanf (“%s”,p ); B、scanf (“%s”,*p );
C、scanf (“%s”,&str); D、scanf (“%s”,&p );
38.C语言中,按一定格式向文件写入数据可以用函数 ( C)。
A、 fputc ( ) B、 fputs ( ) C、 fprintf ( ) D、 fscanf ( )
39.设定义 int k; char c; float f; double d; 且各变量已有确定值,执行k=(c*k+f)/d ;后,变量k 11
C 语 言 程 序 设 计
的类型为( B)。
A、 double B、 int C、 float D、 类型出错
40.下面程序的运行结果是 ( C )。
int max (float x , float y )
{
float z ;
z=x>y? x:y;
return (z);
}
main ( )
{
float a=8.5, b=5.5,c;
c=max (a,b);
printf (“%fn”,c);
}
A、8.500000 B、 8 C、 8.000000 D、出现语法错误
二、填空题
1. 以下函数实现的功能是_将大写字母转化为小写字母_______________。
char lower (char c)
{
if ( c>=‟A‟&& c<=‟Z‟) return (c+32);
else return ( c);
}
2. 作为字符串结束标志的字符‟0‟,它的ASCII码是____0__________。
3. 程序中要用到 sin ( ) 或 sqrt ( ) 等数学函数时,应写上哪一个预编译命令_#include
4.从作用域来分,变量可分为局部变量和___全局变量___________。
5.数学中x属于区间[a,b]或sqrt ( ) 等数学函数时,应写上哪一个预编译命令__________。
6.用条件表达式描述在a,b,c中取最大者,请完成表达式(max=_a>b?a;b_________________)>c?max : c
7.表达式 14*8的值是__0__________。
8.一个不需要返回值的函数,应把其类型定义为________void_________。
9.某段程序为 char str [20 ];
gets (str);
printf (“%s”,str );
当输入响应是 Turbo C 时,其输出是__________________。
10.下面程序的输出结果是__313/7________________________。
main ( )
{ int a,b,c,d ;
12
C 语 言 程 序 设 计
a=313; b=7; c=a/b; d=a%b;
printf (“%d/%d=%d …%dn”,a,b,c,d );
}
11.下面程序实现对任意输入的两个数a,b,按先大后小的顺序输出这两个数。
swap (int p, intp)
{ ___int t;____________________;
t=*p; * p=*q; *q=t;
}
main ( )
{ int a,b;
scanf (“%d%d”,__&a,&b_____________); if (a
printf (“%d,%d”,a,b);
}
12.运行下面程序时若用123456789 响应输入,其输出的结果是_12,345.000000,67.000000____________________________。
main ( )
{int a; float b,c;
scanf (“%2d%3f%2f”,&a,&b,&c);
printf (“a=5d,b=%f,c=%fn”,a,b,c);
}
13.结构化程序设计的三种基本结构为_循环,顺序,选择_______________。
三、判断题
1.5=4+1是C语言的一个合法表达式。( x )
2.If (1)与 分(‘1’)作用相同。( ? )
3.逗号表达式是没有值和类型的。( X )
4.C语言的注释用{和}来界定。( x )
5.C的指针变量可存放任何类型变量的地址。(X )
6.C语言中函数可以嵌套定义函数。( X )
7.程序中使用的所有变量都要先定义后使用。( / )
8.‟045‟是一个字符串。( x )
9.自增,自减运算符(++,-)只能作用于变量,而不能作用于常量和表达式。( / )
10.数组名是一个指向该数组首地址的指针。( / )
11.函数的实参可以是常量或变量,但必须要有一个确定的值。( / )
12.循环语句中表示循环条件的表达式必须是逻辑表达式。( x )
13.当赋值号两边类型不同时,赋值号左边变量的类型有可能被改变。( X )
13
C 语 言 程 序 设 计
14.C语言的整型变量与字符型变量在任何时候都是等价的。( x )
15.在一个C语言程序中有且只有一个main ( )函数。( / )
16.任何未经赋值的指针变量均不能使用。(? )
17.表达式83.5%5的值是实型的。( x )
18.C语言没有字符串变量,字符串被存放在字符数组中。(? )
19.已知char c=‟E‟; 则下面语句执行的输出结果是e-G-B。( ? )
printf ( “%c-%c-%cn”,c+32,c+2,c-3);
20.运行下面程序的输出结果是10。( ? )
main ( )
{ int x=10; func (x);
printf (“%d”,x);
}
func (int x)
{x=20;}
四、改错题
1. 下面程序对正确的输入3,4 ,不能得到正确的输出。
main ( )
{ int a ,b;
scanf (“%d,%d”,a,b); /* 改此行 */
printf (“%d,%d”,a,b);
}
2. 下面程序在调试时发生错误。
#include “stdio.h”
main ( )
{char ch ;
getchar (ch); /* 改此行 */
printf (“%c”,ch);
}
3. 下面语句的功能是希望根据x与y是否相等来决定执行s1或s2。
if (x=y) s1 ; /* 改此行 */
else s2 ;
4. 下面函数求数组a中k个元素之和。
sum (int a[ ],int k)
{ int i,s=0 ;
for (i=0; i s+=a [i] ; return (s); } 5. 下面程序通过指针间接使用整型变量。 14 C 语 言 程 序 设 计 main ( ) { int a=100; int *pa=a; /* 改次行 */ printf (“%d”,*pa); } 15


发布评论