B. a= =11|| a= =12 || a= =13 || a= =14
C. a>10 && a<15
D. !(a<=10) && !(a>=15)
(17) 设 f是实型变量,下列表达式中不是逗号表达式的是 D 。
A. f= 3.2, 1.0
B. f>0, f<10
C. f=2.0, f>0
D. f=(3.2, 1.0)
(18) 设ch是 char型变量,其值为 'A',则下面表达式的值是 B 。
ch=(ch>='A'&& ch<='Z')? (ch+32):ch
A. A
B. a
C. Z
D. Z
(19) 以下运算符中,结合性与其他运算符不同的是 A 。
A. ++
B. %
C. /
D. +
(20) 以下用户标识符中,合法的是 B 。
A. int
B. nit
C. 123
D. a+b
(21) C 语言中,要求运算对象只能为整数的运算符是 % 。
A. %
B. /
C. >
D. *
(22) PC 机中,'\n'在内存占用的字节数是 A 。
A. 1
B. 2
C. 3
D. 4
(23) 字符串"ABC"在内存占用的字节数是 B 。
A. 3
B. 4
C. 6
D. 8
(24) 要为字符型变量 a赋初值,下列语句中哪一个是正确的 B 。
A. char a="3";
B. char a=’3’;
C. char a=%;
D. char a=*;
(25)下列不正确的转义字符是 C 。
A. \\
B. \'
C. 074
D. \0
2. 填空题
(1) C 语言中的逻辑值“真”是用非0 表示的,逻辑值“假”是用 0 表示的。
(2) 符号常量的定义方法是 #define N 10 。
(3) 无符号基本整型的数据类型符为 unsigned int ,双精度实型数据类型符为 double ,字符型数据类型符为 char 。
(4) 设c='w',a=1,b=2,d=-5, 则表达式'x'+1>c, 'y'!=c+2, -a-5*b<=d+1, b==a=2的值分别
为 1 、 0 、 1 、表达式错误。
(5) 设 float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4的值为 2.5 。
(6) 判断变量 a、b 的值均不为 0 的逻辑表达式为 (a!=0)&&(b!=0) 。
(7) 求解赋值表达式 a=(b=10)%(c=6),表达式值、a、b、c 的值依次为 4,4,10,6 。
(8) 求解逗号表达式 x=a=3,6*a 后,表达式值、x、a 的值依次为 18,3,3 。
(9) 数学式a/(b*c)的 C语言表达式 a/(b*c) 。
第3章顺序结构程序设计习题
1. 选择题
(1) printf("f=%3.2f%%",3.478);的输出结果是 A 。
A. f=3.48%
B. f=3.5%
C. f=3.48% %
D. f=347.8%
(2) printf("%c,%d",'a', 'a');的输出结果是 A 。
A. a,97
B. a 97
C. 97,a
D. 97 a
(3) scanf("%c",&a);若要给变量输入大写字母 A,则以下正确的输入是 B 。
A. 'A'
B. A \
C. "A"
D. 以上都不对
(4) 若一个 int 类型的数据占 2 字节,则程序段:int x=-1;printf("%u,%d",x,x);的输出结果是 A 。
A. 65535, -1
B. -1,65535
C. 32767, 32768
D. 32768,32767
(5) 在 TC 中,getchar、putchar、printf、scanf 四个函数,均包含在头文件 B
中。
A. math.h
B. stdio.h
C. stbio.h
D. stdlib.h
(6) 复合语句是用 C 括起来的语句组。
A. ( )
B. [ ]
C. { }
D. < >
(7) 下列格式符中,哪一个可以用于以八进制形式输出整数 C 。
A. %d
B. %8d
C. %o
D. %ld
(8) 下列格式符中,哪一个可以用于以十六进制形式输出整数 B 。
A. %16d
B. %8x
C. %d16
D. %d
(9) a 是int类型变量,c是字符变量,下列输入语句中哪一个是错误的 B 。
A. scanf("%d,%c",&a,&c);
B. scanf("%d%c",a,c);
C. scanf("%d%c",&a,&c);
D. scanf("d=%d,c=%c",&a,&c);
(10) 要使double x; long a;的数据能正确的输出,输出语句应是 D 。
A. printf("%d, %f",a, x);
B. printf("%d, %1f",a, x);
C. scanf("%1d, %1f",&a, &x);
D. printf("%1d, %lf",a, x);
2. 程序改错题(以下各个程序段均有 5 个错误,请先找出错误的位置,然后再改正)
(1) 以下程序的功能是,从键盘输入一个字符并鸣笛输出。
#include "stdio.h"
mian() //main()
{ char c //char c;
getchar(c);//c = getchar();
putchar('\007') ; /*鸣笛*/
c=putchar(); //putchar(c);
//}
(2) 以下程序的功能是,输入长方形的两边长(边长可以取整数和实数),输出它的面积和周长。 main //main()
{
int a,b,s,l; //double a,b,s,l;
scanf("%d,%d",&a,&b); //scanf("%lf,%lf",&a,&b);
s=a*b;
l=a+b; //l=(a+b)*2;
printf("l=%f,s=%f\n",l); //printf("l=%lf,s=%lf\n",l,s);
}
3. 写出程序运行结果
(1)
main()
{
int a,b;
scanf("%2d%*2s%2d",&a,&b);
printf("%d\n",a+b);
}
运行时输入:12345678 //输出:68
(2)
main()
{
int a=3,b=5,x,y;
x=a+1,b+6;
y=(a+1,b+6);
printf("x=%d\ny=%d\n",x,y);
}
输出:x=4
y=11
第4章选择结构程序设计习题
1. 单项选择题
(1) 选择结构程序设计的特点是___B____。
A. 自上向下逐个执行
B. 根据判断条件,选择其中一个分支执行
C. 反复执行某些程序代码
D. 以上都是
(2) 假定所有变量均已正确定义,下列程序段运行后x 的值是__B_。 a=b=c=0,x=35;
if(!a) x--; else if(b); if(c) x=3; else x=4; A. 34 B. 4 C. 35 D. 3
(3) 下面的程序片段所表示的数学函数关系是_ A____。 if(x<0) y= -1;
else if(x>0) y=1;
else y=0;
(4) 下列各语句序列中,能够且仅输出整型变量a 、b 中最大值的是( C )。 A. if(a>b) printf("%d\n",a); printf("%d\n",b); B. printf("%d\n",b); if(a>b) printf("%d\n",a);
C. if(a>b) printf("%d\n",a); else printf("%d\n",b);
D. if(a0) y=1;
else if(x==0) y=0; else y= 1;
printf("%d",y);
A. 1
B. 5
C. 0
D. 2
(6) 程序段int x=5,y=8,max; max=(x>y)?x:y; printf("%d",max);的输出结果是 B 。 A. 5 B. 8 C. 3 D. 13
(7) 程序段 int x=3,a=1;switch(x) {case 4: a++;case 3: a++;case 2: a++;case 1: a++;} printf ("%d",a);的输出结果是 D 。
A. 1
B. 2
C. 3
D. 4
(8) 下列语句应将小写字母转换为大写字母,其中正确的是( B )。
A.if(ch>='a'&ch<='z') ch=ch-32;
B.if(ch>='a'&&ch<='z')ch=ch-32;
C.ch=(ch>='a'&&ch<='z')?ch-32:’’;
D.ch=(ch>'a'&&ch<'z')?ch-32:ch;
2. 阅读程序,写出运行结果 (1) void main () { int a=10, b=4, c=3; if(a
int x=100, a=10, b=20, ok1=5, ok2=0; if(a
else x=-1; printf("%d\n", x); }
输出:-1;
(3)
int k,a=1,b=2;
k=(a++==b) ? 2:3; printf("%d",k);
输出:3
(4)
void main()
{
int s=1,k=0;
switch (s)
{
case 1: k+=1;
case 2: k+=2;
default: k+=3;
}
printf(“%d”,k);
}输出:6 (5)
void main()
{
int s=1,k=0;
switch (s)
{
case 1: k+=1;break;
case 2: k+=2;break;
default: k+=3;
}
printf(“%d”,k);
}
输出:1
第5章循环结构程序设计习题
1. 单项选择题
(1)for(i=1;i<9;i+=1);该循环共执行了 B 次。
A. 7
B. 8
C. 9
D. 10
(2)int a=2;while(a=0) a--;该循环共执行了 A 次。
A. 0
B. 1
C. 2
D. 3
(3)执行完循环 for(i=1;i<100;i++);后,i 的值为 B 。
A. 99
B. 100
C. 101
D. 102
(4)以下 for语句中,书写错误的是 D 。
A. for(i=1;i<5;i++);
B. i=1;for(;i<5;i++);
C. for(i=1;i<5;) i++;
D. for(i=1,i<5,i++);
(5) C 语句,在循环条件初次判断为假,还会执行一次循环体。
A. for
B. while
C. do-while
D. 以上都不是
(6)循环结构的特点是 C 。
A. 从上至下,逐个执行
B. 根据判断条件,执行其中一个分支
C. 满足条件时反复执行循环体
D. 以上都对
(7) i、j已定义为 int 类型,则以下程序段中内循环体的执行次数是 A 。for(i=5;i;i--)
for(j=0;j<4;j++){…}
A. 20
B. 24
C. 25
D. 30
(8) C 语言 while 语句中,用于条件的表达式是 D 。
A. 关系表达式
B. 逻辑表达式
C. 算术表达式
D. 任意表达式
(9) int a=1, x=1; 循环语句while(a<10) x++; a++; 的循环执行 D 。
A. 无限次
B. 不确定次
C. 10 次
D. 9 次
(10)下列程序段执行后 s 的值为 A 。
int i=1, s=0; while(i++) if(!(i%3)) break ; else s+=i ;
A. 2
B. 3
C. 6
D. 以上均不是
2. 填空题
(1)三种循环语句是等价价的。
(2)当循环体中的switch语句内有break语句,则只跳出 swicth 语句。同样,当switch语句中有循环语句,内有 break 语句,则只跳出循环语句。
(3)循环体执行遇到continue 语句时跳过本次循环进入下次循环。
(4)下列程序的功能是输入一个正整数,判断是否是素数,若为素数输出 1,否则输出 0,请为程序填空。void main( )
{
int i, x, y=1;
scanf("%d", &x);
for(i=2; i<=x/2; i++)
if ( x%i==0 ) { y=0; break; }
printf("%d\n",y);
}
(5)输入 N个实数,输出其中的最大值、最小值。
#include
void main( )
{
int n,i;
float no1,nmax,nmin;
scanf("%d",&n); scanf("%f",&no1);
nmax=no1;
nmin=no1 ;
for(i=2;i<=n;i++)
{
scanf("%f", &no1 );
if(no1>nmax) nmax=no1;
if(no1}
printf("MAX=%f MIN=%f\n",nmax,nmin);
}
(6)输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。
#include
void main( )
{
char ch;
int s1=0,s2=0 ;
while(( ch=getchar() )!='\n')
{
if(ch>='0'&&ch<='9') s1++;
if(ch>='a'&&ch<='z' || ch>=’A’||ch<=’Z’) s2++; }
}
3. 阅读下列程序,写出程序运行的输出结果
(1)
void main( )
{ int y=9;
for( ;y>0; y--)
if(y%3==0) { printf("%d", --y); continue;}
}
输出:852
(2)main()
{
int k,n,m;
n=10;m=1;k=1;
while(k++<=n)
m*=2;
printf("%d\n",m);
}
输出:1024
(3)
void main ( )
{ int i=5;
do
{switch (i%2)
{case 4: i--; break;
case 6: i--; continue;
}
i-- ; i-- ;
printf("i=%d ", i);
} while(i>0);
}
输出:i=3 i=1 i=-1 (4)#include
void main( )
{
int k=0; char c='A';
do
{
switch(c++)
{
case 'A': k++; break; case 'B': k--;
case 'C': k+=2; break; case 'D': k=k%2; break; case 'E': k=k*10; break; default: k=k/3;
}
k++;
}while(c<'G');
printf("k=%d\n", k);
}
输出:8
(5)输入数据:2,4
#include
void main( )
{
int s=1,t=1,a,n;
int i;
scanf("%d,%d",&a,&n);
for(i=1;it=t*10+1; s=s+t;
}
s*=a; printf("SUM=%d\n",s); }
输出:2468
4. 程序改错
(1) 以下程序是显示[200,300]所有能被 7 整除的数,每行显示 5 个数,此程序有 5处错。 main()
{
int i,n=0; /*n用来记录每行已打印数的个数*/
while(i<300) //while((i <= 300)&&(i >= 200))
{ //i++;
if(i%7==0) //if(i%7!=0)
break; //continue;
printf("%5d",i);
n=n+1;
if(n=5)/*满5个换行*/ //if(n == 5)
{
printf("\n");
n=0;
}
}
}
(2) 以下程序是求 1!+2!+3!+4!+5!+6!+7!的值,其中有 3 处错误。
main()
{
int i,s,t=0; //long s = 0,t = 1;
//int i;
for(i=1;i<=7;i++)
{
s=0; //去掉该语句
t=t*i;
s=s+t;
}
printf("sum=d\n",s); //printf(“sum=%ld”,s);
}
第6章函数习题
1. 单项选择题
(1)C 语言总是从 A 函数开始执行。
A. main
B. 处于最前的
C.处于最后的
D. 随机选一个
(2)函数在定义时,省略函数类型说明符,则该函数值的类型为 A 。
A. int
B. float
C. long
D. double
(2)以下 B 函数,真正地没有返回值。
A. int a(){int a=2;return (a);}
B. void b(){printf("c");}
C. int a(){int a=2;return a;}
D. 以上都是
(3)在 C 语言中,有关函数的说法,以下正确的是 C 。
A. 函数可嵌套定义,也可嵌套调用
B. 函数可嵌套定义,但不可嵌套调用
C. 函数不可嵌套定义,但可嵌套调用
D. 函数不可嵌套定义,也不可嵌套调用
(4)以下函数调用语句中,含有实参的个数为 B 。
fun((2,3),(4,5+6,7));
A. 1
B. 2
C. 5
D. 6
(5)函数调用可以在 D 。
A. 函数表达式中
B. 函数语句中
C. 函数参数中
D. 以上都是
(6)被调函数返回给主调函数的值称为 C 。
A. 形参
B. 实参
C. 返回值
D. 参数
(7) D ,可以不进行函数类型说明。
A. 被调函数的返回值是整型或字符型时
B. 被调函数的定义在主调函数定义之前时
C. 在所有函数定义前,已在函数外预先说明了被调函数类型
D. 以上都是
(8)被调函数通过 D 语句,将值返回给主调函数。
A. if
B. for
C. while
D. return
(9)被调函数调用结束后,返回到 B 。
A.主调函数中该被调函数调用语句处
B.主函数中该被调函数调用语句处
C.主调函数中该被调函数调用语句的前一语句
D.主调函数中该被调函数调用语句的后一语句
(10)以下对 C语言函数的有关描述中,正确的是 A 。
A. 在 C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B. C函数既可以嵌套定义又可递归调用
C. 函数必须有返回值,否则不能使用函数
D. C程序中有调用关系的所有函数必须放在同一个源程序文件中
(11)C 语言中函数的隐含存储类型是 A 。
A. auto
B. static
C. extern
D. 无存储类型
(12)能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是 A 。
A. return 这两个数
B. 形参用两个元素的数组
C. 形参用两个这种数据类型的指针
D. 用两个全局变量
2. 填空题
(1) 变量的作用域主要取决于变量定义的位子,变量的生存期既取决于变量存储类型,又取决于变量存储方式。
(2) 说明变量时,若省略存储类型符,系统默认其为整形存储类别,该存储类别的类型符为: int 。
(3) 静态型局部变量的作用域是静态局部变量定义的复合语句或函数体内 ,生存期是整个程序运行期内。
(4) 函数中的形参和调用时的实参都是数组名时,传递方式为地址传递,都是变量时,传递方式为值传递。
(5) 函数的形式参数的作用域为整个函数体内,全局的外部变量和函数体内定义的局部变量重名时,函数体内定义的局部变量优先。
(6) 若自定义函数要求返回一个值,则应在该函数体中有一条 return 语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符 void 。
(7) 若函数的形式参数是指针类型,则实参可以是数组名、地址或指针变量。
(8) 函数的参数为 char *类型时,形参与实参结合的传递方式为地址传递。
(9) 函数的实参为常量时,形参与实参结合的传递方式为值传递。
(10) 对数组按值从大到小的顺序排序后输出,请填空。
#include
void main()
{
float a[7]={2,6,3,8,3,12,9};
int i;
void sort(float*,int);
sort(a,7) ;
for(i=0;i<7;i++) printf("%f ",a[i]);
printf("\n");
}
void sort( float *p, int n )
{
int i,j,k; float t;
for(i=0;i{
k=i;
for(j=i+1;jif( p[k]
if(k != i)
{ t=*(p+i); *(p+i)=*(p+k); *(p+k)=t; }
}
}
(11) 下列函数在 n 个元素的一维数组中,找出最大值、最小值并传送到调用函数,请填空。 #include
void find(float *p, float *max, float *min, int n)
{
int k;
float t;
*max=*p; *min = *p;
for(k=1;k{
t=*(p+k);
if( t>*max ) *max=t;
if(t<*min) *min=t;
}
}
3. 写出下列程序运行结果:
(1)
main()
{
int i=1,p;
p=fun(i,i+1);
printf("%d\n",p); }
int fun(int a,int b) {
int f; if(a>b)
f=1;
else if(a==b) f=0;
else
f=-1;
return f; }
输出:-1
(2)键盘输入 abcdef
#include
void fun( )
{
char c ;
if((c=getchar( ))!='\n')
fun( ) ;
putchar(c);
}
void main( )
{ fun( ); }
输出:fedcba
(3)
#include
#define C 5
int x=1,y=C;
void main( )
{
int x;
x=y++; printf("%d %d\n", x,y);
if(x>4)
{ int x ; x=++y; printf("%d %d\n",x,y) ; } x+=y--;
printf("%d %d\n",x,y);
} (4)
#include
int c , a=4 ;
func(int a , int b)
{ c=a*b ; a=b-1 ; b++ ; return (a+b+1) ; } void main( )
{
int b=2 , p=0 ; c=1 ;
p=func(b , a) ;
printf("%d,%d,%d,%d\n", a,b,c,p) ;
}
输出:4,2,8,9
(5)
unsigned fun6(unsigned num)
{
unsigned k=1;
do { k*=num%10; num/=10; }
while(num);
return k;
}
void main( )
{
unsigned n=26;
printf("%d\n", fun6(n));
}
输出:12
输出:5 6
7 7
12 6
第7章数组习题
1. 单项选择题
(1) int a[4]={5,3,8,9};其中 a[3]的值为( D )。
A. 5
B. 3
C. 8
D. 9
(2) 以下 4 个字符串函数中,( A )所在的头文件与其他 3 个不同。
A. gets
B. strcpy
C. strlen
D. strcmp
(3) 以下 4 个数组定义中,( D )是错误的。
A. int a[7];
B. #define N 5 long b[N];
C. char c[5];
D. int n,d[n];
(4) 对字符数组进行初始化,( B )形式是错误。
A. char c1[ ]={'1', '2', '3'};
B. char c2[ ]=123;
C. char c3[ ]={ '1', '2', '3', '\0'};
D. char c4[ ]="123";
(5) 在数组中,数组名表示( A )。
A. 数组第 1 个元素的首地址
B.数组第 2 个元素的首地址
C. 数组所有元素的首地址
D.数组最后 1 个元素的首地址
(6) 若有以下数组说明,则数值最小的和最大的元素下标分别是( B )。
int a[12] = {1,2,3,4,5,6,7,8,9,10,11,12};
A. 1,12
B. 0,11
C. 1,11
D. 0,12
(7) 若有以下说明,则数值为 4 的表达式是( D )。
int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’, d, g ;
A. a[g-c]
B. a[4]
C. a['d'-'c']
D. a['d'-c]
(8) 设有定义:char s[12] = "string" ; 则printf( "%d\n",strlen(s)); 的输出是( A )。
A. 6
B. 7
C. 11
D. 12
(9) 设有定义:char s[12] = "string"; 则printf("%d\n ", sizeof(s)); 的输出是( B )。
A. 6
B. 7
C. 11
D. 12
(10) 合法的数组定义是( A )。
A. char a[ ] = "string";
B. int a[5] ={0,1,2,3,4,5};
C. char a="string ";
D. char a[ ]={0,1,2,3,4,5};
(11) 合法的数组定义是( B )。
A. int a[3][ ]={0,1,2,3,4,5};
B. int a[ ][3] ={0,1,2,3,4};
C. int a[2][3]={0,1,2,3,4,5,6};
D. int a[2][3]={0,1,2,3,4,5,};
(12) 下列语句中,正确的是 ( D )。
A. char a[3][ ]={'abc', '1'};
B. char a[ ][3] ={'abc', '1'};
C. char a[3][ ]={'a', "1"};
D. char a[ ][3] ={ "a", "1"};
(13) 下列定义的字符数组中,输出 printf("%s\n", str[2]) ;的输出是( C )。
static str[3][20] ={ "basic", "foxpro", "windows"};
A. basic
B. foxpro
C. windows
D. 输出语句出错
(14) 下列各语句定义了数组,其中哪一个是不正确的( C )。
A. char a[3][10]={"China","American","Asia"};
B. int x[2][2]={1,2,3,4};
C. float x[2][ ]={1,2,4,6,8,10};
D. int m[][3]={1,2,3,4,5,6};
(15) 数组定义为 int a[3][2]={1,2,3,4,5,6},值为6的数组元素是( B )。
A. a[3][2]
B. a[2][1]
C. a[1][2]
D. a[2][3]
2. 填空题
(1) C 语言中,数组的各元素必须具有相同的类型,元素的下标下限为 0 ,下标必须是正整数、0、或者常量。但在程序执行过程中,不检查元素下标是否越界。
(2) C 语言中,数组在内存中占一片连续的存储区,由数组名代表它的首地址。数组名是一个常量,不能对它进行赋值运算。
(3) 执行 static int b[5], a[ ][3] ={1,2,3,4,5,6}; 后,b[4] = 0 ,a[1][2] = 6 。
(4) 设有定义语句 static int a[3][4] ={{1},{2},{3}}; 则 a[1][0]值为 2 ,a[1][1] 值为 0 ,a[2][1]的值为 0 。
(5) 如定义语句为 char a[ ]= "windows",b[ ]= "2000";,语句 printf("%s",strcat(a,b));的输出结果为 windows2000 。
(6) 输入 20 个数,输出它们的平均值,输出与平均值之差的绝对值为最小的数组元素。请填空。
#include
#include
void main( )
{ float a[20],pjz=0,s,t; int i,k;
for(i=0; i < 20; i++) scanf(“%f”,&a[i]); for(i=0;i<20;i++) pjz+=a[i];
pjz/=20; s=fabs(a[0]-pjz);
for(i=1;i<20;i++)
if(fabs(a[i]-pjz)
{
s=fabs(a[i]-pjz); t=a[i];
}
printf(“%f,%f”,pjz,t);
}
(7) 以下程序以每行 10个数据的形式输出 a 数组,请填空。void main( )
{
int a[50],i;
printf("输入50个整数:");
for(i=0; i<50; i++) scanf( "%d", &a[i] );
for(i=1; i<=50; i++)
{ if( i%10==0 )
printf( "%3d\n" , a[i-1] ) ;
else printf( "%3d",a[i-1]);
}
}
(8) 下面程序的功能是输出数组 s 中最大元素的下标,请填空。void main( )
{
int k, p;
int s[] = {1, -9, 7, 2, -10, 3};
for(p=0,k=p; p<6; p++) if(s[p] > s[k]) k = p ;
printf("%d\n" ,k);
}
3. 阅读程序,分析程序的功能。
(1)
#include
#include
void main( )
{
char s[80];
int i ;
for(i=0; i<80; i++)
{ s[i]=getchar( );
if(s[i]=='\n') break;
}
s[i]='\0'; i=0;
while(s[i]) putchar(s[i++]);
putchar(‘\n’);
}
分析:输入一个字符串,以回车结束,并将其原样输出。(2)
#include
#include
void main( )
{
char str[10][80], c[80];
int i;
for(i=0; i<10; i++) gets(str[i]);
strcpy(c, str[0]);
for(i=1; i<10; i++)
if(strlen(c){strcpy(c,str[i]); }
printf( "%s\n", c);
printf( "%d\n", strlen (c));
}
分析:输入10个字符串,输出10个字符串中最长的字符串和它的长度。
(3)
#include #include void main( ) {
char a[10][80], c[80]; int i, j, k;
for(i=0; i<10; i++) gets(a[i]); for(i=0; i<9; i++) {
k=i;
for(j=i+1; j<10; j++)
if(strcmp(a[j],a[k])<0)
k=j; if(k!=i) {
strcpy(c,a[i]) ; strcpy(a[i], a[k]);
strcpy(a[k],c); } // 字符串交换 }
for(i=0; i<10; i++) puts(a[i]);
}
分析:输入10个字符串,用选择排序算法将10个字符串按从小到大顺序排列并输出。
(4) 阅读程序,写出运行结果。 #include void main( ) {int a[6]={12,4,17,25,27,16}; int b[6]={27,13,4,25,23,16},i,j; for(i=0;i<6;i++) { for(j=0;j<6;j++)
if(a[i]==b[j])
break;
if(j<6)
printf("%d ",a[i]);
}
printf("\n"); }
分析:按数组a 中元素顺序输出与数组b 中元素相同的数。
输出:4,25,27,16
(5) 阅读程序,写出运行结果。 #include void main( ) {
char a[8],temp; int j,k; for(j=0;j<7;j++) a[j]='a'+j; a[7]='\0'; for(j=0;j<3;j++) {
temp=a[6];
for(k=6;k>0;k--) a[k]=a[k-1]; a[0]=temp;
printf("%s\n",a); }
} 分析:将字符串的最后的3个元素移到字符串首位。 输出:efgabcd
(6) 阅读下列程序,写出程序运行的输出结果。
#include
#include
void main( )
{
char str1[ ]="*******";
for(int i=0;i<4;i++)
{
printf("%s\n",str1);
str1[i]=' ';
str1[strlen(str1)-1]='\0';
}
}
输出:*******
*****
***
*
第8章指针习题
1. 单项选择题
(1) 指针 pstr所指字符串的长度为 D 。char *pstr="\t\"1234\\abcd\n"
A. 15
B. 14
C. 13
D. 12
(2) 对于 char *pstr;,以下正确的是 B 。
A. *pstr="Hi"
B. pstr="Hi"
C. *pstr=" Hi"
D. **pstr="Hi"
(3) 以下程序段的输出结果为 B 。
char astr[5]="1234";
char *pstr=astr;
printf("%c",pstr[1]-'0');
A. 1
B. 2
C. ASCII码值为 1 的字符
D. ASCII 码值为 2 的字符
(4) 下述程序段的输出结果为 D 。
char astr[]="abcde";
char *pstr=&astr[5];
while(--pstr>=astr)
putchar(*pstr);
putchar('\n');
A. abc
B. cba
C. abcde
D. edcba
(5) 若有定义 int a=1,*b,c;,以下不正确的是 A 。
A. b=a
B. b=&a
C. b=&a,c=*b
D. c=a
(6) 以下程序段的运行结果为 C 。
int num[]={1,2,3,4,5,6,7,8,9},*pnum=&num[2];
pnum++;
++pnum;
printf("%d\n",*pnum);
A. 3
B. 4
C. 5
D. 6
(7) 以下程序段的运行结果为 B 。
char *pstr="My name is Tom";
int n=0;
while(*pstr++!='\0')
n++;
printf("n=%d\n",n);
A. 12
B. 14
C. 16
D. 不确定
(8) 以下程序段的运行结果为 B 。
int num[9]={1,2,3,4,5,6,7,8,9},*p;
p=num;
*(p+1)=0;
printf("%d,%d,%d\n",*p,p[1],(*p)++);
A. 2,0,1
B. 1,0,1
C. 2,2,2
D. 1,1,1
(9) 以下程序段的运行结果为 C 。
int a=5,*p=&a,b,*q;
a=10;
*p=15;
q=p;
*q=20;
b=*q;
p=&b;
printf("a=%d,b=%d,*p=%d,*q=%d\n",a,b,*p,*q);
A. a=5,b=10,*p=15,*q=20
B. a=20,b=15,*p=10,*q=5
C. a=20,b=20,*p=20,*q=20
D. a=15,b=15,*p=15,*q=15
(10) 已知 char *p,*q;,以下语句正确的是 C 。
A. p*5;
B. p/=q;
C. p+=5;
D. p+=q;
第9章结构体共用体习题
1. 填空题
(1) 定义结构体的关键字是 struct ,定义共用体的关键字是 union 。
(2) 结构体和共用体的相同点是都是构造类型,不同点是共用体在同一时间只能使用一个成员。
(3) 若有以下定义和语句,则sizeof(a)的值是 12 ,而sizeof(b)的值是 20 。struct tu
{ int m; char n; int y;}a;
struct
{ float p; char q; struct tu r} b;
(4) 设有下面结构类型说明和变量定义,则变量a在内存所占字节数是 32 。如果将该结构改成共用体,结果为 16 。
struct stud
{ char num[6]; int s[4]; double ave; } a;
(5) 下面程序用来输出结构体变量ex所占存储单元的字节数,请填空。
struct st
{ char name[20]; double score; };
main()
{ struct st ex ; printf("ex size: %d\n",sizeof( ex )); }
(6) 下面定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。
struct node
{ int info; struct node * link; }
(7) 以下程序执行后输出结果是 A 。
main()
{ union { unsigned int n; unsigned char c; } u1;
u1.c='A'; printf("%c\n",u1.n); }
(8) 变量root如图所示的存储结构,其中sp是指向字符串的指针域,next是指向该结构的指针域,data用以存放整型数。请填空,完成此结构的类型说明和变量root的定义。root
struct list
{ char *sp ; struct list *next ; int data ; } root;
2. 阅读下面的程序,写出程序结果
(1)
struct info
{ char a,b,c;};
main()
{ struct info s[2]={{‘a’,‘b’,‘c’},{‘d’,‘e’,‘f’}};int t;
t=(s[0].b-s[1].a)+(s[1].c-s[0].b);
printf("%d\n",t); }
输出:2
(2)
void main()
{ union { char i[2]; int k; } stu;
stu.i[0]='2'; stu.k=0;
printf("%s,%d\n",stu.i,stu.k);
}
输出:,0
(3)
union myun
{ struct{ int x, y, z; } u; int k; } a;
main()
{ a.u.x=4; a.u.y=5; a.u.z=6; a.k=0; printf(“%d\n",a.u.y); }
输出:0
商业计划书 https://www.360docs.net/doc/1f5798722.html,/syjhs 可行性分析报告 https://www.360docs.net/doc/1f5798722.html, 市场调查 https://www.360docs.net/doc/1f5798722.html,
C语言试卷及答案
《C语言程序设计》考试试卷(答案) 一、填空题(每小空1分,共10分) 1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。 2.一个C程序有且仅有一个main( ) 函数。 3.C语言描述“x和y都大于或等于z”的表达式是x>=z && y>=z。 4.C语言可以用来实现循环的结构化语句是while、do while、for。 5.数组名表示数组在内存的首地址。 6.int a=3,*p=&a;*p+2的值是5。 二、单项选择题(每小题2分,共70分) 1.__B___是C语言合法的常量。 (A).45(B)078 (C)25.6e3.4 (D)‘xy’2.一个程序的执行是从 A 。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 (C)本程序的main函数开始,到本程序文件的最后一个函数结束。 (D)本程序文件的第一个函数开始,到main函数结束。 3.以下叙述正确的是 C 。 (A)在C程序中,main函数必须位于程序的最前面。 (B)C程序每行中只能写一条语句。 (C)C语言本是没有输入输出语句。 (D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 4.以下叙述不正确的是 D 。 (A)逗号运算符的运算级最低。 (B)ABC和abc是两个不同的变量。 (C)若a和b类型相同,在执行a=b后,b的自身值不变。 (D)‘a’和“a”是完全等价的常量。 5.int x=3,y=2;则表达式x+=x*=y+8的值为 C 。 (A)28 (B)30 (C)60(D)17 6.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为 B 。 (A)2.7 (B)3.7(C)4.7 (D)4.03 7.执行下面两个语句后,输出的结果为__D___。 char c1=98; printf(“%d %c”,c1,c1-32); (A)97 66 (B)98 b (C)b 66 (D)98 B 8.执行下面语句后的结果为 C 。 y=10;x=y++; (A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11(D)x=11,y=10 9.Char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是A 。 (A)double (B)char (C)int (D)float 10.C语言中要求操作数必须是整数的运算符是 B 。
历年二级C语言笔试真题及答案
1 2009年9月全国计算机等级考试二级笔试 试卷 1)下列数据结构中,属于非线性结构的是 A )循环队列 B) 带链队列 C) 二叉树 D )带链栈 2)下列数据结果中,能够按照“先进后出”原则存取数据的是 A) 循环队列 B) 栈 C)队列 D)二叉树 3)对于循环队列,下列叙述中正确的是 A )队头指针是固定不变的 B )队头指针一定大于队尾指针 C )队头指针一定小于队尾指针 D )队头指针可以大于队尾指针,也可以小于队尾指针 4)算法的空间复杂度是指 A )算法在执行过程中所需要的计算机存储空间 B )算法所处理的数据量 C )算法程序中的语句或指令条数 D )算法在执行过程中所需要的临时工作单元数 5)软件设计中划分模块的一个准则是 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合 6)下列选项中不属于结构化程序设计原则的是 A) 可封装 B) 自顶向下 C) 模块化 D) 逐步求精 7)软件详细设计产生的图如下: 该图是 A) N-S 图 B) PAD 图 C) 程序流程图 D) E-R 图 8)数据库管理系统是 A )操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统 D) 一种操作系统 9)在E-R 图中,用来表示实体联系的图形是 A) 椭圆图B) 矩形C) 菱形D) 三角形 10)有三个关系R ,S 和T 如下: 其中关系T 由关系R 和S 通过某种操作得到,该操作为 A) 选择 B) 投影 C) 交 D) 并 11)以下叙述中正确的是 A )程序设计的任务就是编写程序代码并上机 B )程序设计的任务就是确定所用数据结 构 C )程序设计的任务就是确定所用算法 D )以上三种说法都不完整 12)以下选项中,能用作用户标识符的是 A )void B )8_8 C )_0_ D )unsigned 13)阅读以下程序 #include main() { int case; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&pjrintF); printf(“%d %f \n”,case,printF); } 该程序编译时产生错误,其出错原因是 A )定义语句出错,case 是关键字,不能 用作用户自定义标识符B )定义语句出错,printF 不能用作用户自定义标识符 C )定义语句无错,scanf 不能作为输入函 数使用 D )定义语句无错,printf 不能输出case 的值 14)表达式:(int)((double)9/2)-(9)%2的值是 A )0 B )3 C )4 D )5 15)若有定义语句:int x=10;,则表达式 x-=x+x 的值为 A )-20 B )-10 C )0 D )10 16)有以下程序 #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 17)设有定义:int a=1,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;} 18)有以下程序 #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 )3 B )5 C )7 D )9 19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是 A )if((a>b)&&(b>c)) k=1;else k=0; B )if((a>b)||(b>c) k=1;else k=0; C )if(a<=b) k=0;else if(b<=c) k=1; D )if(a>b) k=1;else if(b>c) k=1; else k=0; 20)有以下程序 #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 21)有以下程序 #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 )1 2 22)有以下定义语句,编译时会出现编译错误的是 A )char a=?a? B )char a=?\n?; C )char a=?aa?; D )char a=?\x2d?; 23)有以下程序 #include main() { char c1,c2; c1=?A?+?8?-…4?; c2=?A?+?8?-…5?; printf(“%c,%d \n”,c1,c2); } 已知字母A 的ASCII 码为65,程序运行后的输出结果是
c语言试题及答案
1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式
C语言考试题库及答案复习整理
C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句
a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a
(完整版)C语言试题及答案解析
C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行
C语言期末考试题(含答案)
《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是() A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中() A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是() A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是() A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:floata=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不.相符的是() A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是() A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是() A)x!=0B)x==1C)x!=1D)x==0
8、有以下程序: #include voidmain(){ inti=1,j=1,k=2; if((j++||k++)&&i++) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 9、有以下程序: #include voidmain(){ inti,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: voidfun(intn,doublex){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是()A)fun(inty,doublem); B)k=fun(10,12.5); C)fun(x,n);D)voidfun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。
C语言全部题目及答案
C语言全部题目及答案 SANY GROUP system office room 【SANYUA16H-
C语言全部题目及答案 Exercise 1: Programming Environment and Basic Input/Output 1.Write a program that prints “This is my first program!” on the screen. (a)Save this program onto your own disk with the name of e2-1a; (b)Run this program without opening Turbo C; (c)Modify this program to print “This is my second program!”, then save it as e2-1b. Please do not overwrite the first program. 2.Write a program that prints the number 1 to 4 on the same line. Write the program using the following methods: (a)Using four “printf” statements. (b)Using one “printf” statement with no conversion specifier(i.e. no ‘%’). (c)Using one “printf” statement with four conversion specifiers 3.(a) Write a program that calculates and displays the number of minutes in 15 days. (b) Write a program that calculates and displays how many hours 180 minutes equal to. (c) (Optional) How about 174 minutes?
大学C语言考试题库(含标准答案)
单项选择 ================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10 。printf("%d",a++) 。 A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A' 的ASCⅡ代码值是65, 字符变量c1的值是'A',c2 的值是'D'. 执行语句printf("%d,%d",c1,c2-2) 。后, 输出结果是 A、65,66 B、A,B C、 65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10] 。合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B 题号:45 能正确表示逻辑关系:" a ≥10或a≤0 " 的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0
D 题号:157 main() {int x=1,a=0,b=0 。 switch (x) { case 0: b++ 。 case 1: a++ 。 case 2: a++ 。b++。} printf("a=%d,b=%d",a,b) 。} 该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f 是实型,i 是双精度型,则表达式10+'a'+i*f 值的 数据类型为()。 A、不确定 B、double C、int D、 float 答案: B 题号:1647 以下程序中,while 循环的循环次数是______ main() { int i=0 。 while(i<10) { if(i<1) continue 。 if(i==5) break 。 i++ 。 } } A、死循环,不能确定次数 B、6 C、4 D、1
c语言试题及答案 ()
第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由
主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。
C语言期末考试题含答案
C语言期末考试题含答 案 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]
《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(21 的计算结果不. 相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue
7.在while(!x)语句中的!x与下面条件表达式等价的是() A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include <> void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2B)2,2,1C)2,2,2D)2,2,3 9、有以下程序: #include <> void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: void fun(int n,double x){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是() A)fun(int y,double m); B)k=fun(10,; C)fun(x,n); D)void fun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。
C语言上机作业试题5套含答案
第一次上机作业(2014): 要求: ?独立完成,上机调试通过后上交 ?作业提交邮箱: ?邮件主题命名:班级学号姓名(第1次作业), 例如:电1301班2王鹏(第1次作业) ?以附件形式将每次作业的所有程序源程序压缩打包后提交,压缩文件命名格式同上。 ?程序必须采用缩进格式 1.大写字母转换成小写字母 从键盘输入一个大写英文字母,输出相应的小写字母。 例:输入G 输出g 2.求平方根 输入一个实数x,计算并输出其平方根(保留1 位小数)。 例:输入17 输出The square root of 17.0 is 4.1 3.温度转换 设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32) a)输入华氏温度(实型) b)输出的摄氏温度结果保留两位小数 例:Please input Fahrenheit temperature: 76.8 The corresponding Celsius temperature is 24.89 4. 计算旅途时间 输入二个整数time1 和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 (输入的有效的时间范围是0000 到2359,不需要考虑出发时间晚于到达时间的情况。) 例:输入712 1411 (出发时间是7:12,到达时间是14:11) 输出The train journey time is 6 hours 59 minutes. 5. 数字加密 输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。 例:输入1257 输出The encrypted number is 4601 思考题:你能否编程找出谁做的好事? 有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。 ?A说:不是我。 ?B说:是C。 ?C说:是D。 ?D说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 第二次上机作业(2014): 要求: ?独立完成,程序必须采用缩进格式,上机调试通过后上交
C语言试题及答案
一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是(D )。 A. 软件是一种逻辑实体,具有抽象性 ~ B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于(D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 【 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件
A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。 - A. 设计说明书 B. 需求规格说明书 C. 可行性分析报告 D. 用户手册 9. 以下关于数据流图的说法错误的是( c )。 A. 数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储 B. 数据流图是用作结构化分析的一种工具 C. 传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成 D. 数据流图的绘制采用自上向下、逐层分解的方法 10. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( c )。 A. 数据库设计 B. 数据通信 C. 数据定义 D. 数据维护 11. 需求分析阶段的研究对象是( b )。 ¥ A. 系统分析员要求 B. 用户要求 C. 软硬件要求 D. 系统要求 12. 结构化方法的基本原则是( b )。 A. 模块化 B. 抽象与分解 C. 信息隐蔽 D. 逐步求精 13. 耦合度最高的是(b)耦合。 A. 环境 B. 内容 C. 控制 D. 数据 14. 内聚程度较低的是( a )内聚。 A. 偶然 B. 通讯 C. 顺序 D. 时间 15. 对一个程序来说,组成系统的模块数目( b ),则开发成本越小。 A. 越多 B. 越少 C. 顺序 D. 时间> 16. 画软件结构图时应注意调用关系只能是(B )。 A. 从下到上 B. 从上到下 C. 从左到右 D. 从右到左 17. 程序流程图中的箭头代表( b )。 A. 数据流 B. 控制流 C. 顺序流 D. 调用 18. 软件测试是软件质量保证的重要手段,下述( B )是软件测试的最基础环节。
c语言期中考试试题及答案
《C语言程序设计》期中考试试卷 课程编号:03402513试卷类型:A卷考试形式:笔试考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C语言程序的基本结构是(【1】) 。 【1】A) 函数B) 语句C) 字符D) 程序行 2、一个C程序的执行是(【2】) 。 【2】A) 从本程序的主函数开始,到本程序的主函数结束 B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束 3、下列四个叙述中,错误的是(【3】) 。 【3】A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的 C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】A) 整型、实型、逻辑型B) 整型、实型、字符型 C) 整型、双精度型、布尔型D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】A) 固定的B) 由用户自己定义的 C) 任意的D) 与机器字长有关
C语言试题及答案
C语言试题及答案 Company number【1089WT-1898YT-1W8CB-9UUT-92108】
第1章C语言概述习题1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成
C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言 的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。
C语言期末上机考试题及答案
C语言上机考试题—01 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include main() { int k,m,s=0,i,b=0; for(k=10000;k<=20000;k++ ) { if(k%10==7) { for(i=2,b=0;i main() { int a; printf("请输入一个需要判 断的年份:\n"); scanf("%d",&a); if(a%4==0&&a%100!=0) printf("是闰年\n"); else if(a%400==0) printf("是闰年 \n"); else printf("不是闰 年\n"); } C语言上机考试题—02 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include fun(int n) { int i,j=0; for(i=2;i #include main() { char str[81]; int i,j=0,w=1,s=0; printf("请输入一串字符: \n"); gets(str); for(i=0;iC语言考试题及答案
一、单项选择题:(10分,每题2分) 1.char *p[10];该语句声明了一个: c 。 A)指向含有10个元素的一维字符型数组的指针变量p B)指向长度不超过10的字符串的指针变量p C)有10个元素的指针数组p,每个元素可以指向一个字符串 D) 有10个元素的指针数组p,每个元素存放一个字符串 2.若int x;且有下面的程序片断,则输出结果为: D 。 for (x=3; x<6; x++) { printf((x%2) ? "##%d" : "**%d\n", x); } A) ##3B) **3C) **3D)##3**4 **4 ##4 ##4**5 ##5 ##5 **5 3.在while(!x)语句中的!x与下面条件表达式等价的是:D 。 A) x!=0 B) x==1 C) x!=1 D) x==0 4.已知 struct point { int x; int y; }; struct rect { struct point pt1; struct point pt2; }; struct rect rt; struct rect *rp = &rt; 则下面哪一种引用是不正确的__D______。 A) r t.pt1.x B) (*rp).pt1.x C) r p->pt1.x D) rt->pt1.x 5.若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为: C 。 A) *(a+j*n+i) B) *(a+i*n+j) C) *(*(a+i)+j) D) *(*a+i)+j CDDDC 二、分析程序并写出运行结果。(25分,每题5分) 1. #include main()