面试模拟题1(C语言)

合集下载

工程面试题

工程面试题

C语言、基础1、Heap与stack的区别答案:Heap是堆,stack是栈。

Stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放。

Stack空间有限,Heap是很大的自由存储区C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符。

程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行。

难度:简单分析:考查应试者对于程序内存最基本的认识。

2、关键字volatile有什么含意?并给出3个不同的例子。

答案:一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。

精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。

下面是volatile变量的几个例子:1). 并行设备的硬件寄存器(如状态寄存器)2). 一个中断服务子程序中会访问到的非自动变量3). 多线程应用中被几个任务共享的变量难度:中等分析:考查嵌入式系统中常用的volatile变量。

这是区分C程序员和嵌入式系统程序员的最基本的问题。

3、关键字static的作用是什么?答案:在C语言中,关键字static有3个明显的作用。

在函数体内,一个被声明为静态的变量在这一函数被调用的过程中维持其值不变。

在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所有函数访问,但不能被模块外其他函数访问。

它是一个本地的全局变量。

在模块内,一个被声明为静态的函数只可被这一模块内的其他函数调用。

那就是,这个函数被限制在声明它的模块的本地范围内使用。

难度:中等分析:主要考查应试者是否懂得本地化数据和代码范围的好处和重要性。

4、位操作嵌入式系统总是要用户对变量或寄存器进行位操作。

给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。

在以上两个操作中,要保持其它位不变。

C语言程序设计模拟题1

C语言程序设计模拟题1

《C语言程序设计》模拟题1一、选择题:1.一个C语言的源程序中__A____。

A)必须有一个主函数 B)可以有多个主函数C)必须有主函数和其他函数 D)可以没有主函数2.执行以下语句的结果为__C_ __。

y=10; x=y++;A)x=10, y=10 B)x=11, y=11C)x=10, y=11 D)x=11, y=103.执行以下程序段后,c3的值是__A____。

int c1=1,c2=2,c3;c3=c1/c2;A) 0 B) 1/2 C) 0.5 D) 14.C语言中字符型(char)数据在内存中的形式存储是__D ___。

A) 原码 B) 补码 C)反码 D) ASCII码5.下列常数中不能作为C的常量的是__ D____。

A) 0xA5 B) 2.5e-2 C) 3e2 D) 2e32.66.C语言中整数-8在内存中的存储形式是__B ____。

A) 1111 1111 1111 1000 B) 1000 0000 0000 1000C) 0000 0000 0000 1000 D) 1111 1111 1111 01117.已知 int i,a;执行语句"i=(a=2*3,a*5),a+6;"后,变量i的值是_B ____。

A)6 B)12 C)30 D)368.已知函数abc的定义为:void abc ( ){ ....... }则函数定义中void的含义是_ A___。

A)执行函数abc后,函数没有返回值B)执行函数abc后,函数不再返回C)执行函数abc后,可以返回任意类型D)以上三个答案全是错误的9.以下程序的输出结果是_C ___。

main(){ int i,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++) printf("%d,",x[i][2-i]);}A) 1,5,9, B) 1,4,7, C) 3,5,7, D) 3,6,9, 10.已知:double *p[6];它的含义是__C __。

专升本c语言模拟题附答案 (1)

专升本c语言模拟题附答案 (1)

一、单项选择题(在每小题的四个备选答案中,选出一个正确的,并将正确答案的号码填在题后的括号内,每小题1分,共14分)1、程序运行时显示出错信息,可以排除下列哪一个因素(D)A、算法错误B、运行时输入数据错误C、未通过编译D、系统资源配置不当2、语句"float pi=3.1415926535;"将(D)A、导致编译错误B、说明pi为初值3.1415926535的单精度实型常数C、导致运行时的溢出错误D、说明pi为初值3.141593的单精度实型变量3、表达式!x||a==b等效于(D)A、!((x||a)==b)B、!(x||y)=bC、!(x||(a==b)D、(!x)||(a==b)4、字符变量ch="A",int类型变量K=25,printf("%d%d%d\n".ch,k,ch>k);输出(B)A、65,25,1B、65251C、65,25,fD、65 25 f5、下列语句应将小写字母转换为大写字母,其中正确的是(A)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;6、下列语句中与语句while(i>=0&&i<=10){if(i==5)continue;printf("%f\n",1.0//(i-5));i++;}功能相同的是(A)A、for(;i>=0&&i<=10;i++)if(i!=5)printf("%f\n",1.0/(i-5));B for(;i>=0&&i<=10;i++)if(i==5)printf("%f\n",1.0/(i-5));C、for(;i>=0&&i<=10;i++)if(i!=5)printf("%f\n",1.0/(i-5));else break;D、for(;i<=0&&i>=10;i++)if(i!=5)printf("%f\n",1.0/(i-5));7、下列各语句定义了数组,其中哪一个是正确的(C)A、int s1[5],s2[4,3];B、int n,a[n];C、char st [5]="A";D、int x(10),y(10);8、定义带参数的宏"#define jh(a,b,t) t=a;a=b;b=t",使两个参数a、b的值交换,下列表述中哪个是正确的(D)A、不定义参数a和b将导致编译错误B、不定义参数a、b、t将导致编译错误C、不定义参数t将导致运行错误D、参数a、b、t不是变量,不必定义类型9、假如指针p已经指向某个整型变量x,则*p相当于(D)A、&xB、&pC、*xD、x&x10、数组定义为"int a[4][5];",下列哪一个引用错误的(D)A、*aB、*(*(a+2)+3)C、&a[2][3]D、++a11、共同体定义为"union data {char ch;int x;} a;",下列哪一个是不正确的()A、a.ch="x";B、a.x=10;a.x--;C、a={"x",1}D、a.ch="x";a.ch--12、按位与运算:int a=7,b=12,c=a&b;变量c的值是(B)A、19B、4C、5D、913、右移运算:int a=7,c=a>>1;变量c的值是(B)A、6B、3C、15D、2214、为读写打开一个文本文件a:\aa.dat,下列语句中哪一个是正确的(C)A、fp=fopen("a:\aa.dat",k"io");B、fp=fopen("a:\aa.dat","w");C、fp=fopen("a:\aa.dat","a+");D、fp=fopen("a:\aa.dat","r");二、填空题(每小题1分,共14分)1、设int x=17,y=5;执行语句x%=x++/--y后x的值为 2 。

C语言模拟题

C语言模拟题

一.D A C A A B C B A B A A A D C二.TFTFT TFFTF TFFFT FFTTF三. 3 4,4 1 0 0 递归 b 20四1.【参考代码】double y=0;int i;for(i=0; i<=m; i++)y+=1.0/(i+5);return(y);2.【参考代码】int i,max,min;max=min=a[0];for(i=1;i<n;i++)if(a[i]>max) max=a[i];else if(a[i]<min) min=a[i];return(max*min);五1.【参考答案】for (k=4; k<=n; k++)【参考答案】a=b;【参考答案】return d;2.【参考答案】void fun(char *str, char ch )【参考答案】if ( *str == '\0' )【参考答案】str[1] = '\0';六1.【参考答案】i=1【参考答案】200【参考答案】f12.【参考答案】a,bb,a【参考答案】x>yy<x一单选1.下面四个选项中,均是不合法的用户标识符的选项是()。

A、float la0 _AB、A P_0 doC、_123 temp intD、b-a goto int2.表达式18/4*sqrt(4.0)/8值的数据类型为()。

A、doubleB、floatC、intD、不确定3.设:long w=65535,t=7654321;根据下面的输出结果,正确的程序段是( ).w=65535,t=7654321endA、printf("w=%5d,t=%7d\n",w,t);printf("%s","end');B、printf("w=%5ld,t=%7ld",w,t);printf("%c","end");C、printf("w=%5ld,t=%7ld\n",w,t);printf("%s","end");D、printf("w=%5u,t=%7u\n",w,t);printf( "end");4.选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为“真”或“假”。

c语言 面试题

c语言 面试题

c语言面试题C语言面试题C语言是一种广泛应用于系统编程和嵌入式开发领域的计算机编程语言。

如果你正在准备面试,那么掌握一些常见的C语言面试题是非常重要的。

本文将为你提供一些常见的C语言面试题,帮助你更好地准备面试。

一、基础知识类题目1. 什么是C语言?请简要介绍一下C语言的特点。

2. C语言中的标识符和关键字有什么区别?3. C语言中的数据类型有哪些?请列举并简要描述每种数据类型的特点。

4. 请解释一下指针的概念,并说明指针和数组之间的关系。

5. 什么是宏定义?请举一个宏定义的例子并说明其作用。

二、语法类题目1. 请解释一下C语言中的条件语句和循环语句,并举例说明。

2. 如何在C语言中定义一个函数?并简要说明函数的作用。

3. C语言中有哪些类型的运算符?请举例说明每种运算符的用法。

4. 请解释一下C语言中的结构体,并说明如何定义和使用结构体。

5. 什么是递归函数?请给出一个递归函数的例子并说明其执行过程。

三、面向对象编程类题目1. C语言是否支持面向对象编程?请说明理由。

2. 请简要介绍一下C语言中的封装、继承和多态的概念。

3. 在C语言中如何实现封装?请给出一个封装的例子,并说明每个部分的作用。

4. 请解释一下C语言中的函数指针,并说明函数指针和回调函数之间的关系。

5. 如何模拟实现C语言中的继承和多态特性?请给出一个示例。

四、内存管理类题目1. 什么是内存泄漏?请举一个例子,并说明如何避免内存泄漏。

2. 在C语言中如何申请和释放内存?请给出相应的代码示例。

3. 请解释一下C语言中的堆和栈,并说明它们的区别和用途。

4. 如何实现动态内存分配和动态数组的功能?请给出一个示例。

5. 请解释一下C语言中的内存对齐和内存对齐规则。

五、文件处理类题目1. 请简要介绍一下C语言中的文件处理机制。

2. 如何在C语言中打开和关闭文件?请给出相应的代码示例。

3. 如何读取和写入文件中的数据?请给出相应的代码示例。

C语言程序设计模拟题

C语言程序设计模拟题

C语言程序设计模拟题1.由C语言编写的代码程序()。

A.可直接执行B.是一个源程序C.经过编译即可执行D.经过编译解释才能执行【答案】B。

解析:C语言编写的代码程序是一个源程序,C语言编写的代码程序需要经过编译、连接、解释才能执行。

2.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。

A.大写字母B.中划线C.数字字符D.下划线【答案】B。

解析:C语言的自定义标识符只能有字母、数字、下划线。

3.下列选项中,不能用作标识符的是()。

A._1234_B._1_2C.int_2_D.2_int_【答案】D。

解析:标识符只能以字母或下划线开头。

4.以下选项中合法的用户标识符是()。

A.longB._2TestC.3DmaxD.A.dat【答案】B。

解析:A为关键字,C开头只能是字母或下划线,D标识符中只能有字母、数字、下划线。

5.以下不能定义为用户标识符的是()。

A.MainB._0C._intD.sizeof【答案】D。

解析:sizeof为关键字,不能用作用户标识符。

6.下列定义变量的语句错误的是()。

A.int _int;B.double int_;C.char For;D.float US$;【答案】D。

解析:标识符只能有字母、数字、下划线。

7.在C语言中,合法的实型常数是()。

A.5E2.0B.E-3C.2E0D.1.3E【答案】C。

解析:实型常量e的前面要有数,e的后面为整数。

8.在C语言中,合法的实型常数是()。

A.1.2E0.5B.3.14159EC.5E-3D.E15【答案】C。

解析:实型常量e的前面要有数,e的后面为整数。

9.以下选项中,不能作为合法常量的是()。

A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0【答案】B。

解析:实型常量e的前面要有数,e的后面为整数。

10.以下不合法的数值常量是()。

A.011B.1e1C.8.0E0.5D.0xab【答案】C。

c语言模拟题

c语言模拟题
注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!
考生答案
未提交
六、程序设计题
1、
在考生文件夹下,要求程序PROG.C的功能是:
统计字符串中空格和非空格的个数。
例如,当字符串为:"Goodbye 1234!***"
输出:空格:1,非空格:15
部分源程序存在文件PROG.C中。
请在fun( )函数中的/*******begin********/ 与 /********end*********/
之间填入你编写的若干语句,存盘并运行,直到得出正确结果。请勿改动其它位置的任何内容。
注意:main()函数中的最后一行以及main()函数后面的内容,考生不必阅读,但千万不要对这些内容作任何改动。
运行并调试程序,然后将源程序文件PROG.C提交。
考生答案:B 试题答案:A 判题结果:×
8、
有如下说明:
int a[10]={0,1,2,3,4,5,6,7,8,9};
则数值不为9的表达式是________。
A) a[10-1] B) a[8]
C) a[9]-0 D) a[9]-a[0]
考生答案:B 试题答案:B 判题结果:√
9、
函数调用:strcat(strcpy(str1,str2),str3)的功能是________。
b=64;
c=(a>b)?a-b:b-a;
printf("c=%d\n",c);
fprintf(fp,"c=%d\n",c);
fclose(fp);
}
考生答案
未提交
四、程序改错题
1、
在考生文件夹下,给定程序MODI.C的功能是:

c语言程序设计教程课后题及模拟题参考答案

c语言程序设计教程课后题及模拟题参考答案
#include "stdio.h"
main()
{ int x,y;
scanf(“%d,%d”,&x,&y);
if (x*x+y*y>1000)
printf(“%d\n”,(x*x+y*y)/100);
else
printf(“%d\n”,x+y);
}
3.输入一个整数,判断它能否同时被3、5、7整除,并输出“yes”或“no”字样。
a1=a%10 ; a=a/10;
a2=a%10; a=a/10;
a3=a%10;
printf(“%d%d%d\n”, a1, a2, a3);
}
4.编写程序,读入3个double型数据,求它们的平均值,保留此平均值小数点后1位数,对小数点后第2位数进行四舍五入,最后输出结果。
#include "stdio.h"
7. (1)10,6,4 (2)6,9,15 (3)3,60,83
8. 55
习题3
3
1-5BDABC6-10ADCAC 11-12BB
3
1.3
2.0261
3.0x10
4. 2, 1互换a,b的值
5.6.6
6.–003
8.7
7.5.0,4,c=3<Enter>
8.i=10,j=20<Enter>
9.(1) 65
#include "stdio.h"
main()
{ float a, b, h, s;
a=10;b=20;
h=5;s=(a+b)*h/2;
printf("s=%f\n" , s );
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面试模拟题1 (C)面试题1:用find 写出查找/opt/kernel目录下(包括子目录)文件名为Kconfig的命令。

cd /opt/kernel; find –name Kconfig 或find /opt/kernel –name Kconfig面试题2:用 Vi 编译器底行命令模式实现字符串替换,把当前文件中的“xiaodai”全部替换成“banzhang”。

%s/xiaodai/banzhang/g面试题3:变量的声明和定义有什么区别?答:变量的定义:为变量分配地址和存储空间,只在一个地方定义变量的声明:不为变量分配地址,可以在多个地方声明,加入extern 修饰的变量的声明,说明此变量将在文件以外被定义。

很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,如外部变量。

面试题4:sizeof是库函数吗?sizeof 和 strlen 的区别?sizeof 不是库函数,sizeof 是计算变量类型的大小,即占存储区多少个字节;而 strlen 是计算字符串字面值的实际长度,如字符串“hello”,它的长度是5,则strlen(“hello”) = 5;sizeof 是一个操作符,strlen 是库函数sizeof 的参数可以是数据的类型,也可以是变量,而strlen 只能以结尾为‘\0’的字符作为参数。

编译器在编译时就计算出了sizeof 的结果,而 strlen 函数必须在运行时才能计算出来,并且sizeof 计算的是数据类型占内存的大小,而 strlen 计算的是字符串实际的长度。

数组做 sizeof 的参数不退化,而传递给 strlen 做参数就退化指针了,计算出的是数组中字符串中的实际长度。

如: char num[10] = “hello”sizeof(num) = 10, 而 strlen(num) = 5;又如:char num[] = “helloworld”sizeof(num) = 11, strlen(sum) = 10注意:sizeof 是最容易混淆为函数名的操作符。

面试题5:链表和数组有什么区别面试题6:简述队列和栈的异同面试题7:有以下语句: char a=3, b=6, c; c = a^b<<2; 则c的二进制值是_____。

面试题8:如何打印出当前源文件的文件名以及源文件的当前行号?面试题9:假设某个函数的原型为:void foo( int x, int y ); 该函数分别被C编译器和C++编译器编译后在符号库中的名字是什么?面试题10:在QT程序中可以调用被C 编译器编译后的函数吗?如果可以怎么实现?面试题11:.h头文件中的ifndef/define/endif 的作用?#i nclude<file.h> 与#i nclude "file.h"的区别?面试题12:结构与联合有和区别?面试题13:全局变量和局部变量可否同名,他们是否有区别?如果有,是什么区别?面试题14:static有什么用途?static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?面试题15:什么是预编译,何时需要预编译?面试题16:有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为多少?。

面试题17:请计算sizeof的值char str[] = “Hello” ;char *p = str ;int n = 10;请计算sizeof (str ) =_____sizeof ( p ) =_____sizeof ( n ) =_____void Func ( char str[100]){请计算sizeof( str ) =}void *p = malloc( 100 ); 请计算sizeof ( p ) =char *str[]={“Hello”,”HI”,“\x0”};请计算:sizeof(str) =sizeof(str[0]) =面试题18:头文件中有如下宏定义,#define DECLARE_TASKLET(name, func, data) \struct tasklet_struct name = { NULL, 0, ATOMIC_INIT(0), func, data }.c源文件中有如下语句,static DECLARE_TASKLET(btn_tasklet,btn_tasklet_func,(unsigned long)&mydata);请写出预编译后,该语句展开的结果.面试题19:写一个程序,以递归方式反序输出一个字符串。

如给定字符串“abc”输出“cba ”。

面试题20:对于一个字节(8bit)的无符号整形变量,求二进制表示中“1”的个数,要求算法执行效率尽可能地高。

面试题21:参数传递有哪些形式?寄存器和堆栈传递各有什么优缺点? 面试题22:Define宏语句和inline函数有什么区别?面试题23:char a[5][4],a的地址为0,问printf(“%d”,a[4]+3)值面试题24:编写一个宏,实现判断数组a元素的个数。

面试题25:.#define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i 是多少?面试题26:i++一下代码的输出结果是?int i = 1;int j = 2;int k = i+++j;cout << k << endl;面试题27:下面代码输出是什么?为什么void foo(void){unsigned int a = 6;int b = -20;(a+b > 6) puts("> 6") : puts("<= 6");}面试题28:关于动态申请内存的问题void GetMemory(char *p){p = (char *)malloc(100);}void Test(void){char *str = NULL;GetMemory(str);strcpy(str, "hello world");printf(str);}请问运行Test 函数会有什么样的结果?面试题29:请问运行 Test 函数会有什么样的结果?char *GetMemory(void){char p[] = "hello world";return p;}void Test(void){char *str = NULL;str = GetMemory();printf(str);}面试题30:请问运行 Test 函数会有什么样的结果?void GetMemory2(char **p, int num){*p = (char *)malloc(num);}void Test(void){char *str = NULL;GetMemory(&str, 100);strcpy(str, "hello");printf(str);}面试题31:请问运行 Test 函数会有什么样的结果?void Test(void){char *str = (char *) malloc(100);strcpy(str, “hello”);free(str);if(str != NULL){strcpy(str, “world”);printf(str);}}面试题32:用预处理指令#define 声明一个常数,用以表明 1 年中有多少秒(忽略闰年问题)面试题33:C 语言中结构化程序设计的三种基本控制结构面试题34:请说出 const 与#define相比,有何优点?面试题35:简述数组与指针的区别?面试题36:main 函数执行完毕后,是否可能会再执行一段代码,给出说明?面试题37:如果编写一个标准 strlen 函数面试题38:如何引用一个已经定义过的全局变量?面试题39:do……while 和 while……do 有什么区别?面试题40:写一个“标准”宏 MIN面试题41:typedef 和 define 有什么区别面试题42:Typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。

也可以用预处理器做类似的事。

例如,思考一下下面的例子:#define dPS struct s *typedef struct s * tPS;以上两种情况的意图都是要定义dPS 和tPS 作为一个指向结构s指针。

哪种方法更好呢?(如果有的话)为什么?面试题43:int (*s[10])(int) 表示的是什么面试题44:写出 bool 、int、 float、指针变量与“零值”比较的 if 语句bool 型数据:面试题45:请写出以下代码的打印结果#include<stdio.h>void main( void ){int a[5]={1,2,3,4,5};int *ptr=(int *)(&a+1);printf("%d,%d",*(a+1),*(ptr-1));return;}面试题46:设置地址为 0x67a9 的整型变量的值为 0xaa66。

相关文档
最新文档