1下列结构体定义
- 格式:doc
- 大小:52.50 KB
- 文档页数:4
cpa编程一级考试真题及答案一、单选题(每题2分,共40分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是正确的C语言函数声明?A. int add(int a, int b);B. int add(int, int);C. int add(a, b);D. int add(int a, b);答案:A3. 若有定义:int a = 5; float b = 3.14; 则以下哪个表达式的结果为真?A. a == bB. a != bC. a > bD. a < b答案:B4. 在C语言中,以下哪个选项是正确的数组声明?A. int arr[5] = {1, 2, 3};B. int arr[] = {1, 2, 3};C. int arr[5] = {1, 2};D. int arr = {1, 2, 3};答案:B5. 下列哪个选项是C语言中正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"[5]D. 'Hello, World!'[5]答案:A6. 在C语言中,以下哪个关键字用于定义一个枚举类型?A. enumB. structC. unionD. typedef答案:A7. 若有定义:int x = 10; 则执行语句 x += 5; 后,x的值是多少?A. 5B. 10C. 15D. 20答案:C8. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int *ptr[];C. int ptr*;D. int ptr[];答案:A9. 下列哪个选项是C语言中正确的函数定义?A. void func();B. void func() {}C. int func() {}D. int func() { return 0; }答案:D10. 在C语言中,以下哪个关键字用于定义一个联合体?A. structB. unionC. enumD. typedef答案:B11. 若有定义:int arr[5] = {10, 20, 30, 40, 50}; 则执行语句arr[2] = 60; 后,arr数组的第三个元素的值是多少?A. 10B. 20C. 30D. 60答案:D12. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14B. define PI 3.14C. #define PI = 3.14D. define PI = 3.14答案:A13. 下列哪个选项是C语言中正确的条件语句?A. if (x > 0)B. if x > 0C. if (x > 0) {}D. if (x > 0) { }答案:D14. 在C语言中,以下哪个关键字用于定义一个类型别名?A. structB. unionC. enumD. typedef答案:D15. 若有定义:int a = 5; 则执行语句 a *= 2; 后,a的值是多少?A. 5B. 10C. 25答案:B16. 在C语言中,以下哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++)B. for (int i = 0; i <= 10; i--)C. for (int i = 0; i > 10; i++)D. for (int i = 0; i < 10; i--)答案:A17. 下列哪个选项是C语言中正确的位运算符?A. &&B. ||C. &D. |答案:C18. 在C语言中,以下哪个关键字用于定义一个位段?A. structB. unionC. enumD. bit答案:B19. 若有定义:int a = 5; 则执行语句 a %= 3; 后,a的值是多少?A. 2B. 5D. 1答案:A20. 在C语言中,以下哪个选项是正确的文件包含指令?A. #include <stdio。
c语言程序设计第一章试题及答案一、选择题(每题2分,共10分)1. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中合法的变量名?A. _123abcB. intC. forD. myVar答案:C3. 在C语言中,用于声明一个整型变量的关键字是:A. intB. floatC. charD. double答案:A4. 下列哪个选项是C语言中的控制语句?A. printfB. scanfC. ifD. return答案:C5. C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:D二、填空题(每题2分,共10分)1. C语言中,用于输入一个整数的函数是________。
答案:scanf2. 在C语言中,定义一个数组时,数组的下标从________开始。
答案:03. C语言中,用于输出一个浮点数的函数是________。
答案:printf4. C语言中,用于定义一个字符型变量的关键字是________。
答案:char5. C语言中,用于定义一个布尔型变量的关键字是________。
答案:_Bool 或 bool(根据标准不同)三、简答题(每题5分,共20分)1. 请简述C语言中变量的作用域有哪些?答案:变量的作用域主要有局部作用域和全局作用域。
局部作用域通常用于函数内部,变量只在该函数中有效;全局作用域用于函数外部,变量在整个程序中都有效。
2. 解释C语言中的指针是什么?答案:指针是一种特殊的变量,它存储了另一个变量的内存地址。
通过指针,程序可以间接访问和操作内存中的数据。
3. 什么是C语言中的函数原型?答案:函数原型是指函数的声明,它提供了函数的返回类型、函数名、参数类型和数量等信息,但不包含函数的具体实现。
4. 在C语言中,如何定义一个结构体?答案:定义一个结构体需要使用关键字`struct`,后跟结构体的名称,然后是一对花括号,其中包含了结构体成员的声明。
一、选择题(每题 1 分,共 20 分)1. C 语言程序的三种基本结构是顺序结构、选择结构和结构。
A、循环B、递归C、转移D、嵌套2. 下列标识符中,合法的是_______ 。
A) unsigned B) 5ab C) INT# D)_num23. 若float x ;x = 10/4; x的值是。
A、2.5B、 2.0C、 3D、 24. 表达式 !x 等价于。
A、x==0B、x==1C、x != 0D、x != 15. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为。
A、算术运算、赋值运算、关系运算B、关系运算、赋值运算、算术运算C、算术运算、关系运算、赋值运算D、关系运算、算术运算、赋值运算6. 能将高级语言编写的源程序转换为目标程序的是。
A、链接程序B、解释程序C、编译程序D、编辑程序7. 下列语句定义pf为指向float类型变量f的指针,是正确的。
A、float f, *pf = f;B、float f, *pf = &f;C、float *pf = &f, f;D、float f, pf = f;8. 一个C程序的执行是从。
A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束9. 能正确表示“当x的取值在[1,10]或[[200,210]范围内为真,否则为假”的表达式是________。
A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B、(x>=1)||(x<=10)||(x>=200)||(x<=210)C、 (x>=1)&&(x<=10)||(x>=200)&&(x<=210)D、(x>=1)||(x<=10)&&(x>=200)||(x<=210)10. 对两个数组a和b进行如下初始化char a[]=“ABCDEF”; char b[]={ …A‟,‟B‟,‟C‟,‟D‟,‟E‟,‟F‟};则以下叙述正确的是。
c++一级考试必备知识
以下是一些C++一级考试必备的知识点:
1. 数据类型:包括基本数据类型(整型、浮点型、字符型、布尔型)和复合数据类型(数组、结构体、联合体、枚举、指针)
2. 控制语句:包括顺序结构、选择结构(if-else语句、switch
语句)、循环结构(for循环、while循环、do-while循环)
3. 函数:函数的定义和调用,函数参数的传递(值传递、引用传递),函数重载
4. 数组:一维数组和二维数组的定义、初始化、访问,数组作为函数参数的传递
5. 字符串:字符串的定义、赋值、拼接,字符串处理的常用函数(strcpy、strcat、strlen等)
6. 结构体和类:结构体和类的定义、成员变量和成员函数的使用,构造函数和析构函数的定义,访问权限控制
7. 文件操作:文件的打开和关闭,文件的读写(文本文件和二进制文件)
8. 异常处理:try-catch块的使用,捕获和处理异常
在准备考试时,除了掌握以上知识点,还应熟练运用这些知识
在编程中解决问题。
建议多做一些练习题和实践项目,加深对知识点的理解和应用能力。
一、填空题(每空 1 分,共20 分)1.程序的三种基本结构为(顺序)、(选择)和(循环)。
2.在C 语言中,用(;)表示语句的结束。
3.语句printf("%%d%d",123);将输出:(“%d123 )。
4.逻辑运算的结果值是(0 )或( 1 )。
5.数组 int a[3][4];共定义了(12 )个数组元素。
6.在 C 语言中,正确的标识符是由(数字、字母、下划线)组成的,且由(字母和下划线)开头的。
7.一个算法应具有的特点有:(有穷性)、(确定性)、有零个或多个输入、有一个或多个输出、有效性。
8.在程序执行过程中,其值不发生改变的量称为(常量),其值可变的量称为(变量)。
9.若有定义:int m=5,y=2;则执行表达式y+=y-=m*=y 后的y 值是(-16 )。
10.在三种正规循环中,当条件表达式的值为(0 )时,就结束循环。
11.C 语言中函数的参数分为(形式参数)和(实际参数)。
12.当函数的数据类型省略时,默认的数据类型为(int 型或者整数型)型。
13.按变量地址访问变量的方法叫(直接访问),通过存放变量地址的变量去访问变量的方法叫(间接访问)。
14.若有定义:int [3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是(0 ),a[2][1]得到的初值是( 6 )。
15.文件包含的一般形式为(#include <文件名> )。
16.宏定义中宏名一般用大写字母表示,容易做到(一改全改)。
17.结构体是一种(构造)数据类型用途是把(不同类型)的数据组合成一个整体。
18.位运算的运算对象只能是(整型)或(字符型)数据,而不可以是其他类型的数据。
19.(文件)是存储在外部介质上数据的集合,是操作系统数据管理的单位。
20.设有“int x=2,y”说明,则逗号表达式“y=x+5,x+y”的值是(9 )。
二级C语言-3-1(总分82, 做题时间90分钟)一、选择题1.设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是______。
• A. k++• B. k+=1• C. ++k• D. k+1SSS_SIMPLE_SINA B C D分值: 2答案:A[解析] 凡是表达式都有一个值,即运算结果。
k++的表达式值为0,k再进行增1运算;k+=1是赋值表达式,其作用是取k中的值加1后再放到k变量中,即表达式的值为1;++k是先进行k增1运算,表达式的值为1;k+1=0+1,其运算的结果为1。
所以选项A中表达式的值与其他三个表达式不同。
2.以下程序的输出结果是void fun(float *p1,float *p2,float *s){ s=(float *)calloc(1,sizeof(float));*s=*p1+*p2++;}main(){ float s[2]={1.1,2.2},b[2]=<10.0,20.0},*s==a;fun(a,b,s);printf("%5.2f\n",* s);}• A. 11.10• B. 12.00• C. 21.10• D. 1.10SSS_SIMPLE_SINA B C D分值: 1答案:D3.以下函数返回a所指数组中最小的值所在的下标值fun(int *a,int n){ int i,j=0,p;p=j;for(i=j;i<n;i++)if(a[i]<a[p]) ______;return(p);}在横线处应填入的是A)i=p B)a[p]=a[i] C)p=j D)p=iSSS_SIMPLE_SINA B C D分值: 2答案:D[解析] 该程序先判断a[i]<a[p],如果条件为真,则a[i]比当前设定的最小值小(p保留的当前最小元素的下标),那么将i赋给p,即将比较过的最小元素下标保留在p中,作为下面判断的标准。
湖北工程学院《C语言程序设计》2023-2024学年第一学期期末试卷考试课程:C语言程序设计考试时间:120分钟专业:计算机科学与技术总分:100分---一、单项选择题(每题2分,共20分)1. 在C语言中,用于定义常量的关键字是:A. constB. constantC. defineD. static2. 以下关于C语言变量命名的规则正确的是:A. 变量名可以以数字开头B. 变量名可以包含空格C. 变量名区分大小写D. 变量名可以使用C语言关键字3. 在C语言中,表达式5/2的值是:A. 2.5B. 2C. 3D. 2.04. 以下哪种循环结构在C语言中不存在:A. for循环B. while循环C. do-while循环D. foreach循环5. 在C语言中,字符常量'a'的ASCII码值是:A. 96B. 97C. 98D. 996. 以下关于C语言中的数组说法正确的是:A. 数组名是变量B. 数组下标可以是负数C. 数组在内存中是连续存储的D. 数组元素的类型可以不同7. 以下哪个库函数用于比较两个字符串:A. strcpyB. strcmpC. strcatD. strlen8. 使用标准输入输出库函数printf输出整数变量i的值,格式符应该是:A. %fB. %cC. %dD. %s9. 在C语言中,指针的大小在32位系统上通常是:A. 2字节B. 4字节C. 8字节D. 16字节10. 以下关于C语言中的结构体说法正确的是:A. 结构体不能包含指针B. 结构体变量可以作为函数参数C. 结构体成员只能是基本数据类型D. 结构体不能嵌套---二、判断题(每题2分,共20分)11. C语言中,函数的返回值类型可以是void。
()12. 在C语言中,数组名实际上是指向数组首元素的指针。
()13. C语言中的sizeof运算符返回变量的字节数。
()14. 指针变量和一般变量一样,都有类型。
timeval结构体详解(一)timeval结构体详解什么是timeval结构体?timeval是一个C语言中的结构体,用于表示时间的秒数和微秒数。
它定义在头文件中,是Unix系统中常用的一种表示时间的方式。
timeval的成员变量timeval结构体包含两个成员变量:•time_t tv_sec:表示时间的秒数,存放从1970年1月1日开始计算的秒数。
•suseconds_t tv_usec:表示时间的微秒数,存放从上一个秒数开始计算的微秒数。
如何使用timeval结构体?当我们需要获取当前的时间或者计算时间差等操作时,可以使用timeval结构体。
下面是一些常见的使用方式:•获取当前时间要获取当前时间,可以使用gettimeofday()函数,并将返回的时间值存储在一个timeval结构体中。
例如:#include <sys/>int main() {struct timeval tv;gettimeofday(&tv, NULL);// 使用_sec和_usec获取当前时间的秒数和微秒数return 0;}•计算时间差假设我们有两个时间点的timeval结构体,分别为tv1和tv2,如果想计算它们之间的时间差,可以按照以下步骤进行:1.将tv2的秒数减去tv1的秒数,得到秒数差值。
2.将tv2的微秒数减去tv1的微秒数,得到微秒差值。
3.如果微秒差值小于0,需要借位,将秒数差值减1且微秒差值加上一秒的微秒数(1秒=1,000,000微秒)。
4.最终的秒数差值即为秒数差值 + 微秒差值 / 1,000,000。
#include <sys/>int main() {struct timeval tv1, tv2;gettimeofday(&tv1, NULL);// 执行某些操作gettimeofday(&tv2, NULL);long sec_diff = _sec - _sec;long usec_diff = _usec - _usec;if (usec_diff < 0) {sec_diff--;usec_diff += ;}double diff = sec_diff + usec_diff / .0;// 使用diff即为tv1和tv2之间的时间差return 0;}小结timeval结构体是Unix系统中常用的一种表示时间的方式,它由秒数和微秒数两个成员变量组成。
模拟测试1.C语言的结构1.在C语言中,程序的基本单位是______,一个C源程序至少包含一个______,当然也可以包含一个______和许多个其他的______。
2.C语言具有层次清晰的特点,它用函数作为程序模块以实现程序的______,从而使得程序易于调试和维护,符合现代编程的风格,所以C语言是一种______语言。
阅读下面的程序,回答3、4题。
程序1-1:P1-1.c#include<math.h>#include<stdio.h>main(){double s;printf("Input a number:\n");scanf("%f",&s);s=sqrt(s);printf("%lf\n",s);}3.在上面的程序中,include称为______,而类似math.h的以.h为扩展名的文件称为______。
4.在程序1-1中,属于数据说明的语句是______,整个函数体包含在______之中。
5.与一般的编程语言相比较,C语言具有限制小,灵活性______,语法限制______,程序设计自由度大,可移植性______,并且能够______访问内存。
6.以下说法中正确的是()。
A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分2.数据类型及其运算1.C语言的数据类型可以分为基本类型、______类型、______类型和空类型。
其中基本类型又可以分为整型、______、______和枚举类型。
构造类型可以分为______类型和______类型。
2.在C语言中,合法的字符常量是()。
A)'\084' B)'\x43'C)'ab' D)"\0"3.在C语言中不但规定了运算符的优先级,并且规定了运算符的______,这也是其他高级语言所没有的,同时也增加了C语言的复杂性。
C综合练习4 附参考答案(宏,结构体和文件)0.较为复杂的宏定义例题(1)定义一个宏,用于判断所给出的年份year是否为闰年:#define LEAP_YEAR(y)解:为闰年的条件是符合下面二者之一:(1)能被4整除,但不能被100整除。
(2)能被4整除,能被400整除。
#define LEAP_YEAR(y) (y%4==0 && y%100!=0)|| (y%400==0 )(2)定义带参数的宏为#define max(a,b) ((a)>(b)?(a):(b))对表达式max(a,max(b,max(c,d))) 作宏替换为(用文字描述):。
解:计算a、b、c、d中的最大值。
表达式是调用宏函数,两个参数分别是a,max(b,max(c,d)),其第二个参数又是一个调用宏函数,参数分别是b,max(c,d)。
(3)定义一个带参数的宏,将两个参数的值交换#define swap(a,b) { double t; }解:t=a; a=b; b=t;(4)定义一个带参数的宏,若变量中的字符为大写字母则转换成小写字母。
解:#define change(c) c=c>='A'&&c<='Z'? c:c+321. 单项选择题1.下面语句的输出结果是________。
#include “stdio.h”printf(“%d %d %d”,NULL,’\0’,EOF);A.0 0 1B.0 0 -1C.NULL EOFD.1 0 EOF2.如果二进制文件a.dat已经存在,现要求写入全新的数据,应以________方式打开。
A.“w” B.”wb” C.”w+” D.”wb+”3.有以下的结构体变量定义语句:struct student { int num; char name[9]; } stu;则下列叙述中错误的是( )。
一.选择题1.int i=10;float x; 执行x=5/i; 后x的值为 __C______。
A.0.5 B.0 C.0.0 D.1.02. 以下标识符中,哪一个是C语言的合法标识符 CA) 2abcd B)int C)a-2c D)_char E)#456xy3. 以下 C 是不正确的转义字符:A) '\n' B)’\’’C)'061' D)'\0'4.执行下面的程序后# include<stdio.h># define SQR(X) (X) * (X)void main (){ int a=10,K=2,m=1;a /= SQR(K+m) / SQR(K+m);printf(”a=%d”,a);}输出结果是a=__B_____。
A.10 B.1 C.9 D.05. 现有定义char str1[]="China",str2[5]={'C','h','i','l','e'};则有AA)strcmp(str1,str2)>0B)strcmp(str1,str2)<0C)strlen(str1)=6D)str1与str2所占存储空间大小一样6.有以下的结构体变量定义语句:struct student { int num; char name[9]; } stu;则下列叙述中错误的是B 。
A.结构体类型名为student B.结构体类型名为stuC.num是结构体成员名 D.struct是C的关键字7. 执行以下程序:# include<stdio.h>void main (void){char c=0;printf(“%c\n”,c);}输出结果是 _D_______。
A.‘\0’ B.语法错,不能执行 C.0 D.一个空行8.C语言对嵌套 if 语句的规定是: else 总是和 D 配对A)其之前最近的 if B) 缩进位置相同的 ifC)第一个 if D) 其之前最近且不带 else 的 if9.设有定义语句enum aa{add,sub,mul,div}opera;,以下对枚举变量opera的操作中,不正确的是 BA. opera=(enum aa)2B. scanf(“%d”,&opera)C. opera=add+1D. if(opera==sub)print(”OK”);10. 下列宏定义命令中,哪一个格式是正确的___D_____A.#define pi=3.14159;B. define pi=3.14159C. #define pi="3.14159"D. #define pi (3.14159)11.以下不正确的描述是 AA)在 switch 语句中使用 break 语句或continue语句的作用相同B)在循环语句中使用 continue 语句是为了结束本次循环,而不是终止整个循环C)break 语句不能用于循环语句和 switch 语句之外的任何其他语句D)在循环语句中使用 break 语句是为了使流程跳出循环体,提前结束循环12.定义int x=3,执行while(x){printf(“%d”,x);x--;}语句后,x的值为:A 。
大一第一学期c语言考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中合法的变量名?A. 2variableB. intC. _myVarD. my-variable答案:C2. C语言中,哪个关键字用于定义一个函数?A. functionB. defC. defineD. void答案:D3. 在C语言中,以下哪个数据类型用于存储字符?A. intB. charC. floatD. double答案:B4. 下列哪个选项不是C语言中的控制语句?A. ifB. whileC. forD. switch答案:D5. C语言中,哪个函数用于计算并返回字符串的长度?A. strlenB. lengthC. sizeD. len答案:A6. 在C语言中,下列哪个运算符用于比较两个值是否不相等?A. ==B. !=C. =D. <=答案:B7. C语言中,下列哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A8. 在C语言中,如何定义一个指向整型的指针?A. int *p;B. int *p = 0;C. int p = 0;D. int *p = 1;答案:A9. C语言中,下列哪个选项是正确的数组定义?A. int arr[5] = {1, 2, 3};B. int arr[] = {1, 2, 3};C. int arr[3] = {1, 2, 3, 4, 5};D. int arr[5] = {1, 2};答案:B10. 下列哪个选项是C语言中正确的注释方式?A. // 这是注释B. /* 这是注释 */C. //* 这是注释D. /* 这是注释答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字定义一个函数。
答案:void2. C语言中,________关键字用于声明一个变量。
答案:int3. 在C语言中,________运算符用于将一个值赋给变量。
一级c考试试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义变量的关键字是:A. varB. defineC. intD. let答案:C2. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable#2答案:B3. 在C语言中,用于计算两个整数的乘积的运算符是:A. +B. -C. *D. /答案:C4. 若有定义`int a = 5;`,则`a++`执行后,变量`a`的值是:A. 4B. 5C. 6D. 7答案:C5. C语言中,用于输入输出的库函数是:A. math.hB. stdio.hC. string.hD. time.h答案:B6. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. +=D. +=答案:A7. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello World'D. 'Hello World'答案:A8. C语言中,用于定义一个整型数组的语法是:A. int array[5] = {1, 2, 3, 4, 5};B. int [5] array = {1, 2, 3, 4, 5};C. int array = {1, 2, 3, 4, 5};D. int array[5];答案:A9. 若有定义`int a = 10;`,则`a %= 3;`执行后,变量`a`的值是:A. 1B. 2C. 3D. 4答案:A10. C语言中,用于定义一个函数的关键字是:A. defineB. functionC. voidD. int答案:A二、填空题(每题3分,共15分)1. C语言中,用于定义一个整型变量的关键字是________。
第十章结构体与共用体一、选择题1.在说明一个结构体变量时系统分配给它的存储空间是。
(0级)A)该结构体中第一个成员所需存储空间B)该结构体中最后一个成员所需存储空间C)该结构体中占用最大存储空间的成员所需存储空间D)该结构体中所有成员所需存储空间的总和2.若有以下说明和语句:struct worker{ int no; char ﹡name; }work, ﹡p=&work;则以下引用方式不正确的是。
(1级)A) work.no B) (﹡p).no C) p->no D)work->no3.有如下定义:struct date { int year, month, day; };struct worklist { char name[20]; char sex;struct date birthday; }person;对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是。
(1级)A) year=1958 B) birthday.year=1958C) person.birthday.year=1958 D) person.year=19584.以下对结构体类型变量的定义中不正确的是。
(1级)A)#define STUDENT struct student B) struct studentSTUDENT { int num;{ int num; float age;float age; }std1; }std1;C) struct D) struct{ int num; { int num;float age; float age; } student;}std1; struct student std1;5.设有以下说明语句struct stu{ int a; float b; }stutype;则下面的叙述不正确的是。
(1级)A)struct是结构体类型的关键字B)struct stu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名6.C语言结构体类型变量在程序执行期间。
C_C++语言笔试面试题目含答案C语言试题一:单项选择题1.void Example(char acHello) {printf(\ return; }void main() {char acHello = \Example(acHello); return; }的输出是( )A 4B 5C 6 D不确定2.网络上传输的字节序默认是大字节的,如果主机是小字节序,在网络通信时则须进行字节序转换;如果主机是大字节序,为了程序的一致性及可移植性,最好也在程序中加上字节序转换的操作。
( ) A. 正确 B.错误3. int *(*ptr)();则以下叙述中正确的是( ) A) ptr是指向一维组数的指针变量B) ptr是指向int型数据的指针变量C) ptr是指向函数的指针,该函数返回一个int型数据D) ptr是指向函数的指针,该函数的返回值是指向int型数据的指针 4.此函数实现把32位IP地址(网络序)以字符串的方式打印出来: char *IpAddr2Str(unsigned long ulIpAddr) {char szIpAddr[32];unsigned long ulLocIpAddr = ntohl(ulIpAddr);//把网络序转话为主机序(void)VOS_sprintf(szIpAddr, \ (ulLocIpAddr >> 16) & 0xff, (ulLocIpAddr >> 8)& 0xff, ulLocIpAddr & 0xff);return szIpAddr; }下面描述正确的是: A、数组szIpAddr空间不够;B、函数返回局部数组szIpAddr变量地址;C、输出的IP地址次序颠倒; 5.#define OK 0 #define ERR 1#define ERROR (-1) #define BUFFER_SIZE 256 char *GetMemory(unsigned long ulSize) {char *pcBuf = NULL;pcBuf = (char *)malloc(ulSize);if(NULL == pcBuf) {return ERROR; }return pcBuf; }void Test(void) {char *pszBuf = NULL;pszBuf = GetMemory(BUFFER_SIZE);if(NULL != pszBuf) {strcpy(pszBuf, \printf(pszBuf); free(pszBuf); }return; }如下描述正确的是:A、pszBuf指向的内存不能超过255B、GetMemory函数的异常分支返回了-1,是一个非法地址C、GetMemory中异常分支没有释放空间;D、pcBuf为局部指针,指向的内存将在GetMemory被调用后释放6、#include \unsigned short *Sum(unsigned char a, unsigned char b) {unsigned short s = 0;s = a + b; return &s; }int main() {unsigned short *p = NULL; unsigned char a = 1, b = 2;p = Sum(a, b);printf(\ printf(\ return 0; }程序执行结果是+2=0 +2=3 +2=NULL D.不可预测 7、设有如下定义: BOOL gStatusA = FALSE; BOOL gStatusB = TRUE; int gVarA = 100; int gVarB = 100;则执行main函数后gVarA和gVarB的值分别为(BOOL CheckA() {if(gStatusA) {gVarA++; } else {gVarA--; }return gStatusA; }BOOL CheckB() {if(gStatusB) {gVarB++; } else {gVarB--;) }return gStatusB; }int main(int argc, char* argv) {if(CheckA() && CheckB() ) {printf(“Status OK”); } return 0; }A, 99和100 B, 99和101 C 99和99 D 101和998.下面的代码中,函数Test执行完毕后,希望输出无符号长整型的1。