通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
第1题
当全局变量与局部变量重名时,那么在调用时( )
局部变量会被屏蔽
全局变量会被屏蔽
都不会调用,系统会报错
会调用两次,先调用局部变量,再调用全局变量
第2题
请阅读下面的程序,选择正确的输出结果。( )
void main() { printf("%d",null); }
0
变量无定义
-1
1
第3题
若程序中有下面的说明和定义:
struct abc { int x; char y; } struct abc s1,s2;
则会发生的情况是( )。
编译出错
程序将顺利编译、连接、执行
能顺利通过编译、连接,但不能执行
能顺利通过编译,但连接出错
第4题
C语言中下面哪个不是循环语句?( )
do while
if
while
for
第5题
下列关于指针变量的描述,不正确的是( )。
在没有对指针变量赋值时,指针变量的值是不确定的
同类指针类型可以进行相减操作
在使用没有赋值的指针变量时,不会出现任何问题
可以通过指针变量来取得它指向的变量值
第6题
若有以下定义,则正确的语句是( )。union data {int i;char c:float f} a;jnt n;
c=5;
a={2,'a',1.2};
printf("%d\n",a);
n=a;
第7题
C语言中可处理的文件类型是( )。
文本文件和数据文件
文本文件和二进制文件
数据文件和二进制文件
数据代码文件
第8题
关于C语言中 printf()函数与 scanf()函数,下列描述中正确的是( )。
printf()函数可以向任何地方输出数据
printf()只向控制台输出数据
scanf()函数只能输入英文字母和数字
scanf()函数可以识别输入的空格
第9题
若有定义:
struct KeyWord{ char Key[20]; int ID;}kw[]= { "void", 1, "char", 2, "int", 3, "float", 4, "double", 5};
则 printf("%c,%d\n",kw[3].Key[0],kw[3].ID);
语句的输出结果为( )。
i 3
n 3
f 4
l 4
第10题
下列运算符中优先级最高的是( )。
||
&&
+
=
第11题
结构体数组有两种方式进行初始化:先定义结构体数组类型再初始化结构体数组、在定义结构体数组的同时对结构体数组初始化。( )
正确
错误
第12题
调用 fclose( )函数后原有的文件指针仍然可以进行文件操作。( )
第13题
操作字符串的函数 strcat()与 stmcat()用法是相同的。( )
第14题
链表和数组一样都是内存上一段连续的内存空间。( )
第15题
一维数组指的是只有一个下标的数组,用来表示一组具有相同类型的数据。( )
第16题
C语言提供了 fopen()函数,该函数用于打开文件,其返回值类型为空。( )
第17题
break语句只能在循环语句中使用。( )
第18题
十进制数 10转换为二进制为 1010。( )
第19题
不能直接使用一个字符串常量来为一个字符数组赋值。( )
第20题
在C语言中,逻辑表达式可以包含多个逻辑运算符。( )
第21题
当使用指针指向一个函数时,这个指针就称作______。
第22题
与十进制数 1770.625 对应的八进制数是______。
第23题
在C语言中,根据数值的取值范围不同,可以将整型定义为______、基本整型和长整型。
第24题
若在 main()函数中定义,char*s ="hello";则字符串是分配在______空间上。
第25题
假设函数指针p指向函数 int func(),如果要使用函数指针来调用这个函数,则可以通过这样的代码来实现:______。
第26题
八进制是一种“逢八进一”的进制,十六进制是一种______的进制。
第27题
程序中定义了一个指向结构体变量的指针后,可以通过"______"的方式访问结构体变量中的成员。
第28题
ASCII编码是规定了把英文字母、数字、标点、______转换成计算机能识别的二进制数的规则。
第29题
二进制是一种“逢二进一”的机制,它用0和_____两个符号来描述。
第30题
_____指令用来取消宏定义。
第31题
请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:根据对x的输入,求1到x的累加和。
int fun(int n) { int i,c; c=0; for(i=1;i<=n;i++) c=c+i; ___①___ } void main() { int x; scanf("%d",___②___); printf("%d\n",fun(x)); }
第32题
定义一个结构体,其中包括:职工号、职工名、年龄、工资、地址。按结构体类型定义一个结构体数组.从键盘输入每个结构体元素所需的数据.然后逐个输出这些元素(可设数组只有三个元素)。
参考答案:
#include <stdio.h> /* 样例 1 John 25 2500.20 MainStreet 2 Jane 30 3500.50 HighStreet 3 Jim 40 4500.75 ParkAvenue */ // 定义一个结构体,包括职工号、职工姓名、年龄、工资、地址 struct Employee { int empNo; char name[20]; int age; float salary; char address[100]; }; int main() { // 声明结构体数组 struct Employee employees[3]; // 循环输入员工信息 int i; for(i = 0; i < 3; i++) { scanf("%d %s %d %f %s", &employees[i].empNo, employees[i].name, &employees[i].age, &employees[i].salary, employees[i].address); } // 输出员工信息 printf("\n职工信息如下:\n"); for(i = 0; i < 3; i++) { printf("职工号:%d\n", employees[i].empNo); printf("职工姓名:%s\n",employees[i].name); printf("年龄:%d\n", employees[i].age); printf("工资:%.2f\n", employees[i].salary); printf("地址:%s\n", employees[i].address); printf("\n"); } return 0; }
第33题
编写程序,键盘输入一个不多于 4位数,求出它是几位数:
提示:
1)定义一个数 num,用 num/10 逐渐削减其倍数.直到为 num/10为0;
2) 可以用 while 循环。
#include <stdio.h> /* 样例 1234 */ int main() { int n,z=0; scanf("%d",&n); while(n!=0) { n/=10; z++; } printf("%d",z); char s[17]; scanf("%s",s); char *k = s; while(*k!='\0')k++; printf("%d",k-s); return 0; }
第34题
请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。
void main() { int a=2,b=7; #ifdef SUM printf("sum = %d\n",a+b); #else printf("a = %d,b=%d\n,a,b); #endif }
第35题
请阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。
#include <stdio.h> void 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\n",a,b); }
一、选择题(1- 10题,共计20分) 二、判断题(11-20题,共计20分) 三、填空题(21-30题,共计20分) 四、程序题(31-35题,共计40分)