没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
上嵌教育—上海通信协会人才实训基地、华东科研委员会嵌入式人才孵化基地 www.qianrushi.com.cn
1、局部变量能否和全局变量重名?
答:能,局部会屏蔽全局,要用全局变量,需要使用"::"。
局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。
对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的
局部变量,而那个局部变量的作用域就在那个循环体内。
2、如何引用一个已经定义过的全局变量?
答:extern。
可以用引用头文件的方式,也可以用extern 关键字,如果用引用头文件方式来引用某个在头文件中声明的
全局变量,假定你将那个变写错了,那么在编译期间就会报错;如果你用extern 方式引用,假定你犯了同样的
错误,那么在编译期间不会报错,而在连接期间报错。
3、全局变量可不可以定义在可被多个.C 文件包含的头文件中?为什么?
答:可以,在不同的C 文件中以static 形式来声明同名全局变量。
可以在不同的C 文件中声明同名的全局变量,前提是其中只能有一个C 文件中对此变量赋初值,此时连接
不会出错。
4、语句for ( ; 1; ;)有什么问题?它是什么意思?
答:无限循环,和while(1)相同。
5、do⋯⋯while 和while⋯⋯do 有什么区别?
答:前一个循环一遍再判断,后一个判断以后再循环。
6、请写出下列代码的输出内容。
#include <stdio.h>
int main(void)
{
int a, b, c, d;
a = 10;
b = a++; // b = 10、a = 11
c = ++a; // c = 12、a = 12
d = 10*a++; // d = 120、a = 13
printf("b, c, d: %d, %d, %d", b, c, d);
return 0;
}
答:b, c, d: 10, 12, 120
7、static 有什么用途?(请至少说明两种)
1)在函数体,一个被声明为静态的变量在这一函数被调用过程中只能被初始化一次,以后调用该函数时,
该静态变量的值维持和上调用结束时一致。
2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其
它函数访问。它是一个本地的全局变量。
3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在
声明它的模块的本地范围内使用。
8、引用与指针有什么区别?
1)引用必须被初始化,指针不必。
2)引用初始化以后不能被改变,指针可以改变所指的对象。
3)不存在指向空值的引用,但是存在指向空值的指针。
9、描述实时系统的基本特性。
答:在特定时间内完成特定的任务,实时性与可靠性。
本页已使用福昕阅读器进行编辑。
福昕软件(C)2005-2007,版权所有,
仅供试用。
上嵌教育—上海通信协会人才实训基地、华东科研委员会嵌入式人才孵化基地 www.qianrushi.com.cn
10、全局变量和局部变量在内存中是否有区别?如果有,是什么?
答:全局变量存储在静态数据库,局部变量在堆栈
11、什么是平衡二叉树?
答:左右子树都是平衡二叉树,且左右子树的深度差的绝对值不大于1。
12、堆栈溢出一般是由什么原因导致的?
答:没有回收垃圾资源。
13、什么函数不能声明为虚函数?
答:constructor(构造)函数不能被声明为虚函数。
14、冒泡排序算法的时间复杂度是什么?
答:时间复杂度是O(n^2)。
15、写出float x 与“零值”比较的if 语句。
if(x>=-0.000001&&x<=0.000001) 或
#define EPSINON 0.000001
if (x >= -EPSINON && x <= EPSINON)
16、Internet 采用哪种网络协议?该协议的主要层次结构?
答:tcp/ip 协议
主要层次结构为:应用层/传输层/网络层/网络接口层
17、Internet 物理地址和IP 地址转换采用什么协议?
ARP (Address Resolution Protocol)(地址解析协议)
18、IP 地址的编码分为哪两个部分?
IP 地址由两部分组成:网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪
些是主机位。
19、用户输入M、N 值,从1 至N 开始顺序循环数数,每数到M 输出该数值,直至全部输出。写出C 程序。
#include <stdio.h>
#define MAX_ARRAY_SIZE 1024
int main(void)
{
int arr[MAX_ARRAY_SIZE], m, n, i, j, k;
do {
printf("input m n: ");
scanf("%d %d", &m, &n);
} while (m <= 0 || n <= 0);
for (i = 0; i < n; ++i)
arr[i] = i + 1;
for (i = j = 0; i < n; ++i) {
k = (j + m) % n;
printf("%d ", 0==k?n:k);
for (j = k; k < n - 1; ++k)
arr[k] = arr[k + 1];
}
printf("\n");
return 0;
}
运行结果:
本页已使用福昕阅读器进行编辑。
福昕软件(C)2005-2007,版权所有,
仅供试用。
上嵌教育—上海通信协会人才实训基地、华东科研委员会嵌入式人才孵化基地 www.qianrushi.com.cn
20、不能做switch()的参数类型是:
答:switch 的参数不能为实型。
21、找错
①
void test1()
{
char string[10];
char *str1="0123456789";
strcpy(string, str1); // 溢出,结束标记’\0’
}
void test2()
{
char string[10], str1[10];
for(i=0; i<10;i++)
{
str1[i] ='a';
}
strcpy(string, str1); // str1 无结束标记,string 数组溢出
}
void test3()
{
char string[10];
if (strlen(str1)<=10)
{
strcpy(string, str1); //当strlen(str1)==10 时,string 溢出
}
}
22、写出程序运行结果
①
int sum(int a)
{
auto int c = 0;
static int b = 3;
c += 1;
b += 2;
return (a + b + c);
}
void main(void)
{
int i;
int a = 2;
for (i = 0; i < 5; ++i)
{
printf(“%d,”, sum(a));
上嵌教育—上海通信协会人才实训基地、华东科研委员会嵌入式人才孵化基地 www.qianrushi.com.cn
}
}
运行结果:
8,10,12,14,16,
②
#include <stdio.h>
int sum(int a)
{
int b;
switch (a) {
case 1: b = 30;
case 2: b = 20;
case 3: b = 16;
default: b = 0;
}
return b;
}
则func(1) = ? // func(1) = 0
③
int a[3];
a[0] = 0; a[1] = 1; a[2] = 2;
int *p, *q;
p = a;
q = &a[2];
则a[q-p] = ? // 2
23、定义int **a[3][4],则变量占有的内存空间为: 48 。
24、编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输入2004 年12 月31 日23 时
59 分59 秒,则输出2005 年1 月1 日0 时0 分0 秒。
#include <stdio.h>
int main()
{
int year, mon, day, hour, min, sec,
daytable[13] = {365, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
do {
printf("input year mon day hour min sec: ");
scanf("%d %d %d %d %d %d", &year, &mon, &day,
&hour, &min, &sec);
} while (year<1 || mon<1 || mon >12 || day<1 || day>daytable[mon] ||
hour<0 || hour>23 || min<0 || min>59 || sec<0 || sec>59);
if (sec < 58)
++sec;
else {
sec = 0;
if (min < 58)
上嵌教育—上海通信协会人才实训基地、华东科研委员会嵌入式人才孵化基地 www.qianrushi.com.cn
++min;
else {
min = 0;
if (hour < 23)
++hour;
else {
hour = 0;
if (2 == mon && (0 == year%400) || (0 == year%4 && year%100 != 0))
daytable[mon] = 29;
if (day < daytable[mon])
++day;
else {
day = 1;
if (mon < 12)
++mon;
else {
mon = 1;
++year;
}}}}}
printf("%d-%d-%d, %d:%d:%d\n", year, mon, day, hour, min, sec);
return 0;
}
25、用变量a 给出下面的定义。
a)一个整型数(An integer) // int a;
b)一个指向整型数的指针(A pointer to an integer) // int *a;
c)一个指向指针的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer) // int **a;
d)一个有10 个整型数的数组(An array of 10 integer) // int a[10];
e)一个有10 个指针的数组,这些指针指向一个整型数(An array of 10 pointers to integer) // int *a[10];
f)一个指向有10 个整型数数组的指针(A pointer to an array of 10 integers) // int (*a)[10];
g)一个指向函数的指针,该函数有一个整型数参数并返回一个整型数(A pointer to a function that takes an
integer as an argument and returns an integer) // int (*a)(int);
h)一个有10 个指针的数组,这些指针指向一个函数,该函数有一个整型数参数并返回整型数(An array of
ten pointers to functions that take an integert argument and return an integer) // int (*a[10])(int);
26、有三个线程ID 分别为A、B、C,请用多线程编程实现在屏幕上循环打印10 次ABCABC⋯⋯
// posix 多线程
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
int k = 0;
void *routine_A(void *arg)
{
int i;
剩余34页未读,继续阅读
求职之道
- 粉丝: 882
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 什么是后端开发-关于后端开发的一些小介绍分享
- Jurassic Pack Vol. II Dinosaurs 侏罗纪包卷恐龙二号Unity游戏模型资源unitypackage
- Jurassic Pack Vol. III Dinosaurs 侏罗纪包卷恐龙三号Unity游戏模型资源unitypackag
- Ultimate Seating Controller 终极座椅控制器Unity游戏开发插件资源unitypackage
- 什么是人工智能-关于人工智能的相关介绍说明
- Figma Converter for Unity适用Unity的Figma转换器Unity游戏开发插件unitypackage
- Creepy Animatronic Anims 令人毛骨悚然的电子动画Unity游戏动画插件资源unitypackage
- Rankings & Leaderboards 排名和排行榜Unity游戏开发插件资源unitypackage
- Semantic Color Palette 语义调色板Unity游戏开发插件资源unitypackage
- Low Poly Nature:Lush and Diverse Environments低聚自然郁郁Unity低多边形模型资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页