c语言编程题(c语言简单题目)

admin 357 0

大家好,c语言编程题相信很多的网友都不是很明白,包括c语言简单题目也是一样,不过没有关系,接下来就来为大家分享关于c语言编程题和c语言简单题目的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

一、c语言编程题目求解

1、 printf("请输入学生的成绩:\n");

2、 if(score>=90&& score<=99){

3、 printf("学生的成绩等级为A\n");

4、}else if(score>=80&& score<=89){

5、 printf("学生的成绩等级为B\n");

6、}else if(score>=70&& score<=79){

7、 printf("学生的成绩等级为C\n");

8、}else if(score>=60&& score<=69){

9、 printf("学生的成绩等级为D\n");

10、}else if(score>=0&& score<=59){

11、 printf("学生的成绩等级为E\n");

12、 printf("输入的成绩不合法\n");

13、 printf("请输入学生的成绩:\n");

14、 printf("学生的成绩等级为A\n");

15、 printf("学生的成绩等级为B\n");

16、 printf("学生的成绩等级为C\n");

17、 printf("学生的成绩等级为D\n");

18、 if(score>=0&& score<=59){

19、 printf("学生的成绩等级为E\n");

20、 printf("输入的成绩不合法\n");

21、 for(i=2; i<=sqrt(num); i++){

22、 printf("请输入一个整数:\n");

23、 printf("%d是素数\n", num);

24、 printf("%d不是素数\n", num);

25、 printf("请输入%d个数:\n", N);

二、求助一道C语言实训编程题 分多多

//---------------------------------------------------------------------------

void input(struct student*studn,int n)

printf("请输入第%d位学生的信息:\n",s+1);

scanf("%d",&studn[s].score[i]);

printf("%d门功课最高分为:%d,最低分为:%d\n",num,max,min);

void min(struct student*st,int n)

void jige(struct student jg[],int num,int k)

printf("%d门都不及格的人数有:%d\n",k,j);

void jiansuo(struct student js[],int num)

printf("请输入要检索的学生的学号:");

printf("学号:%d\n",js[n].no);

printf("姓名:%s\n",js[n].name);

printf("性别:%c\n",js[n].sex);

printf("住址:%s\n",js[n].address);

printf("第%d门成绩为:%d\n",s+1,js[n].score[s]);

printf("没有找到学号为%d的学生!\n",count);

printf("\n1.输入100名学生的数据;\n2.显示每个学生5门功课中的最低及最高分;\n3.显示每门功课都不及格的学生人数;\n4.检索学号为某指定数的学生信息\n5.退出\n\n");

case 3:jige(stu,100,5);break;

case 4:jiansuo(stu,100);break;

default:printf("输入错误,请重试!\n");

//---------------------------------------------------------------------------

三、求C语言编程题

1、编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数字之和。

printf("\n%d",(a*a+b*b)/100);

2、试编程判断输入的正整数是否既是5又是7的整数倍数。若是,则输出yes;否则输出no。

1、编一程序,将字符串computer赋给一个字符数组,然后从第一个字母开始间隔的输出该串,请用指针完成。

2、输入一个字符串string,然后在string里面每个字母间加一个空格,请用指针完成。

string=(char*)malloc(max*sizeof(char));

copyString=(char*)malloc(2*max*sizeof(char));

while(*copyString!='\0')

char acY[ ]={'a','b','c','d','e','f','g'};

A)数组acX和数组acY等价 B)数组acX和数组acY的长度相同

C)数组acX的长度大于数组acY的长度 D)数组acX的长度小于数组acY的长度

printf("%d", sizeof(acHello));

example(acHello);//数组名称作参数,传的是地址,一个地址占四个字节

for(pcPtr= acArr; pcPtr< acArr+ 5; pcPtr++)

4.在中断中,不能同步获取信号量,但是可以释放信号量。

A)在不同的函数中可以使用相同名字的变量

C)在一个函数内定义的变量只在本函数范围内有效

D)在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括号构成的代码)

unsigned long pulArray[]={6, 7, 8, 9, 10};

printf("%d,%d\n",*pulPtr,*(pulPtr+ 2));

7.定义结构体时有下面几种说法,请指出正确的(多选):______

A、结构体中的每个部分,最好进行四字节对齐;

B、结构体的总长度最好是四字节对齐;

C、结构中成员的存放不用考虑字节对齐情况;

printf("%d\n", strlen(acNew));

9.switch(c)中的c的数据类型可以是char、long、float、unsigned、bool.()

10.网络上传输的字节序默认是大字节的,如果主机是小字节序,在网络通信时则须进行字节序转换;如果主机是

大字节序,为了程序的一致性及可移植性,最好也在程序中加上字节序转换的操作(空操作)。

printf("%s\n",(*p).name);

struct stu students[3]={{9801,"Zhang",20},

A) Zhang B)Zhao C) Wang D) 18

12.以下程序运行后,输出结果是()

C"abcde"这个常串中字符c所在的地址 D出错

A) 3839 B) 3938 C) 380039 D)不可预知

14.全局变量可以定义在被多个.C文件包含着的头文件中。

char acNew[20]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

printf("%d\n", strlen(acNew));

E: char pc[]={'a','b','c','d','\0'};

F: char pc[]='a''b''c''d';

17.在函数内部定义的变量(静态变量、寄存器变量等特殊变量除外)的内存是在栈内存中,所以在定义函数内部的变量的时候,一定要保证栈不能够溢出。如果临时变量

占用空间较大,应该使用内存申请的方式,这样该变量指向的内存就是在堆内存中了。

18.局部变量可以和全局变量重名,编译的时候不会出现错误,但一旦不小心,就可能导致使用错误变量,所以在定时局部变量的时候,不要和全局变量重名。

#define Y(n)((N+1)*n)/*这种定义在编程规范中是严格禁止的*/

则执行语句:z= 2*(N+ Y(5+ 1));后,z的值为()

A) ptr是指向一维组数的指针变量

B) ptr是指向int型数据的指针变量

C) ptr是指向函数的指针,该函数返回一个int型数据

D) ptr是指向函数的指针,该函数的返回值是指向int型数据的指针

21. 0x12345678在采用BigEndian中内存的排列顺序是______,在采用LittleEndian内存中的排列顺序是_______.

(答案从左到右内存地址依次增加)

问:AAA_S在字节对齐分别为1、4的情况下,占用的空间大小是多少?

四字节对齐方式时: sizeof(TEST_S)= ______, sizeof(test)________.

char acHello[]="hello\0world";

4.#pragma pack(4)/*编译选项,表示4字节对齐*/

int main(int argc, char* argv[])

printf("%d%d%d", sizeof(stT1), sizeof(stT2), sizeof(stT3));

#pragma pack()(编译选项结束)

请问 enumA= ____; enumB= ______;

6.以下程序的输出结果是________.

7.以下程序的输出结果为________

#define CIR(r) r*r/*请注意这种定义的缺陷,不允许这么定义*/

8.在VRP中,实现了strncpy类似的函数,定义如下:

#define MACRO_COPYWORLDLENGTH 4

CHAR*VOS_strncpy(CHAR*pcDest, const CHAR*szSrc, ULONG ulLength)

if(( NULL== szSrc)||( NULL== pcDest)))

while(ulLength&&(*pcPoint=*szSrc))/*这里采用了在判断语句中赋值的方式(*pcPoint=*szSrc),建议尽量不使用*/

CHAR szStrBuf[ ]="1234567890";

CHAR szStrBuf1[ ]="1234567890";

CHAR*szHelloWorld="Hello World!";

strncpy(szStrBuf, szHelloWorld, MACRO_COPYWORLDLENGTH);

VOS_strncpy(szStrBuf1, szHelloWorld, MACRO_COPYWORLDLENGTH);

printf("%s%s", szStrBuf, szStrBuf1);

char acHello[]="hello\0world";

在强制一字节对齐情况下,请指出sizeof(HEAD_S)= ________;

在强制二字节对齐情况下,请指出sizeof(HEAD_S)= ________;

在强制四字节对齐情况下,请指出sizeof(HEAD_S)= ________;

在字节对齐为1下,sizeof(union tagAAAA)、sizeof(struct tagBBBBB)、sizeof(struct tagCCCC)是____ ____ _____

在字节对齐为4下,sizeof(union tagAAAA)、sizeof(struct tagBBBBB)、sizeof(struct tagCCCC)是____ ____ _____

那么pAbc+0x100= 0x_________;(ULONG)pAbc+ 0x100= 0x_________;(ULONG*)pAbc+ 0x100= 0x_________;(char*)pAbc+ 0x100= 0x_______;

答案:100C00 100100 100400 100100

13.unsigned long FUNC_C( unsigned long ulAction)

printf("ulResult=%u", ulResult);

当输入为ACTION_B时,输出结果为: ulResult= _________;

答案:2(因为此分支没有break分支)

14.下面的代码中,函数Test执行完毕后,打印的结果是 _____。

void GlobalInit(unsigned long ulArg)

15.以下程序的输出的结果是___________

16.以下程序的输出的结果是___________

int main(int argc, char* argv[])

pstPimData=(struct tagPIM*)puc;

printf("%02X%02X%02X%02X\n", puc[0], puc[1], puc[2], puc[3]);

#pragma pack()/*恢复缺省对齐方式*/

char str[]="\\\0";

19.UCHAR*pucCharArray[10][10];

四字节对齐方式时: sizeof(pucCharArray)= __指针的数组,每个指针的地址都是4字节____, sizeof(stMax)=_______, sizeof(pstMax)=__地址______,sizeof(*pstMax)=________.

在强制一字节对齐情况下,请指出sizeof(HEAD_S)= ________;

在强制二字节对齐情况下,请指出sizeof(HEAD_S)= ________;

在强制四字节对齐情况下,请指出sizeof(HEAD_S)= ________;

请问 sizeof(pszTest)= _____, sizeof(*pszTest)= ______, sizeof(aucTest)= ______.

(unsigned long)p+ 0x1= 0x______

(unsigned long*)p+ 0x1= 0x______

答案:100018 100001 100004 100001

void main(int argc, char*argv[])

printf("\r\n sizeof(stMax)=%d",sizeof(stMax));

unsigned long ulA= 0x11000000;

printf("\r\n%x",*(unsigned char*)&ulA);

三、指出下列程序中导致不能出现预期结果的唯一错误(不考虑编程规范错误)

1.下面程序用于输出用户输入的字符串。请指出其中的问题

int GetMemory(char**ppszBuf, int num)

if(OK== GetMemory(&pcStr, BUFFER_SIZE))

scanf("%s",pcStr);/*这里假定BUFFER_SIZE足够大,不会导致越界*/

答案:要采用printf("%s", str)的形式打印,否则如果输入为%s,%d等形式可能会导致不可知现象。

2.此函数实现把32位IP地址(主机序)以字符串的方式打印出来,请找出代码中的错误:

char*IpAddr2Str(unsigned long ulIpAddr)

(void)VOS_sprintf(szIpAddr,"%d.%d.%d.%d", ulIpAddr>> 24,

(ulIpAddr>> 16)& 0xff,(ulIpAddr>> 8)& 0xff, ulIpAddr& 0xff);

答案:函数的局部变量是存放在堆栈中的,此函数返回了堆栈中的地址,函数退出后堆栈中的内容不可用。

3.如下程序用于输出"Welcome Home"。请指出其中的错误:

strcpy(pcArray,"Welcome Home");

4.如下程序用于把"blue"字符串返回,请指出其中的错误:

pcNewColor=(char*)malloc(strlen(pColor));

答案:申请内存空间不足,字符串结尾还有'\0'。

5.下面程序期望输出str= hello world,请指出其中的错误:

printf("\r\n str=%s",str);

答案:无法返回字符串,参数使用错误。

好了,文章到此结束,希望可以帮助到大家。