资源描述
C语言自测题(四)
一、填空题
(1)C语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。
(2)在C语言中,系统在给出逻辑运算结果时,以_ 1_代表逻辑值”真”,以 0 表示逻辑值”假”,在判断一个量是否为”真”时,以 0 代表”假”,以 非0 代表”真”。
(3)a=8,那么a*=a-=a+a的值是 64 。
(4)a=6, b=2, c=4,那么a+b>c&&b-c*2||a&&b&&!c的值是 1 。
(5)unsigned int字节数为 2 ,double字节数为 8 ,float字节数为 4 。
(6)在C语言的表达式运算中结合方向指的是什么:优先级相同的运算符的执行顺序。
(7)逗号是C语言的运算符吗? 是 。
(8)在C语言中的预处理命令都以 # 开头。
(9)结构化程序设计规定的三种基本结构是 顺序 结构、 选择 结构和 循环 结构。
二、选择题
1、设整型变量a,b,c均为2,表达式:a+++b+++c++的结果是(6 )。
A) 6 B) 9 C) 8 D) 5
2、设有程序段
int k=15;
while (k=0) k=k-1;
则下面描述中正确的是( C )。
A) while循环执行10次 B) 无限循环
C) 循环体语句一次也不执行 D) 循环体语句执行一次
3、若定义了char x; 则将x强制转换成单精度类型应该写成( A )。
A) (float)x B) x(float) C) float (x) D) (x)float
4、在C语言库函数中,可以输出float型变量x值的函数是( D )。
A) getchar B) scanf C) putchar D) printf
5、选择运行结果
#include "stdio.h"
main( )
{ char ch;
ch=getchar( );
switch(ch)
{ case 65: printf ("%c", 'A'); break;
case 66: printf ("%c", 'B');
default : printf ("%s\n", "other");break;
}
}
当从键盘输入字母B时输出结果为( A )。
A) Bother B) ABother C) Aother D) 'A'
三、读程序写出运行结果
(1)main( ) 运行结果:8 5 2
{int y=9;
for(;y>0;y――)
if(y%3= =0)
printf(“%d”,――y);}
(2)main( ) 运行结果:4018
{ char a[ ]="5129", *p;
int s=0;
for (p=a; *p!='\0'; p++)
s=10*s+*p-'1';
printf ("\n%d",s);
}
(3)main ( ) 运行结果:-1
{ int a=-5, b=, c=;
if (a<b)
if (b<0) c++;
else c+=3;
printf ("%d\n", c);
}
(4)main ( ) 运行结果:29
{ int a[2] [3]= {2, 0, 0, 2, 4, 23};
int s=0, i, j;
for (i=1; i<2; i++)
for (j=0; j<3; j++)
s+=a[i][j];
printf ("%d", s);
}
(5)main( ) 运行结果:a=8
{ void fu( ); a=1
fu ( );
fu( );
}
void fu( )
{ static int a=;
printf ("a=%d\n", !a? 1:8)
++a;
}
四、程序填空
(1)输出100至200之间所有能被7或9整除的自然数。
#include "stdio.h"
main ( )
{ int n, i=0;
printf ("\n");
for ( n=100;n<=200;n++ )
{ if (n%7!=0&&n%9!=0)
continue ;
if (i++%5= =0) printf ("\n");
printf ("%8d",n);
}
}
(2)对候选人得票的统计,设3个候选人,每次输入一个得票的候选人的名字,要求
最后输出各人得票结果。程序如下:
#include "stdio.h"
struct person
{ char name [20];
int count;
} leader [3]={"zhu", 0, "qin", 0, "liu",0};
main ( )
{ int i,j;
char leader_name[20];
for (i=1;i<=100;i++)
{ scanf ("%s",leader_name);
for (j=0; j<3; j++)
if (strcmp (leader_name, leader [ j ].name)= =0)
leader[j].count++;
}
printf ("\n");
for (i=0; i<3; i++)
printf ("\n%6s:%d\n", leader[i].name, leader[i]. count);
}
(3)下面程序的功能是输出数组s中最大元素的下标
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);}
五、编写程序
1、将10个人的成绩输入计算机后按逆序显示。
#define N 10
main( )
{ int i;float score[N];
for (i=0; i<N; i++)
scanf("%f",score[i]);
for (i=N-1; i>=0; i--)
printf("%6.1f",score[i]);
}
2、求一个整数的立方。
#include<stdio.h>
int cube (int x) /* 函数定义 */
{ return (x * x * x); }
main( )
{ int f, a;
printf("\nEnter an integer number:");
scanf("%d", &a);
f = cube (a);
printf("%d * %d * %d = %d\n", a, a, a, f);
}
3、输入a、b两个整数,使用指针变量按大小顺序输出这两个整数。
main( )
{ int a,b,*p1,*p2,*p;
p1=&a;p2=&b;
scanf(″%d%d″,a,b);
if(*p1<*p2)
{ p=p1; p1=p2; p2=p;}
printf(″a=%d,b=%d\n″,a,b);
printf(″max=%d,min=%d\n″,*p1,*p2);
}
4、定义一个学生结构体,学生的信息有学号(字符型)、姓名(字符型)、性别(整型)、年龄(整型)、住址(字符型)、成绩((单精度型)。
struct student
{ char num[8];
char name[30];
char sex;
int age;
char addr[60];
int score[6];
};
5
展开阅读全文