Global training solutions for engineers creating the world's electronics

C++ Self-Assessment Test

Do you know enough C to attend C++ Programming for Embedded Systems or C++ Programming for Embedded Systems Online?

You need to be able to write C programs using functions, variables, typedefs, operators, and statements. You need to be fluent in the use of the control flow statements if-else, switch, for, and while. You need to be familiar with the bitwise operators ~ & | ^. You need to feel very comfortable using structs and pointers. You need to be very sure of the difference between pointers (*) and addresses (&).

Ask yourself whether you could write a C program to do the following:

  1. Read in a series of lower-case characters one at a time from the keyboard.
  2. If the character is 'h', display the string Hello World in the terminal window.
  3. If the character is 'g', display the string Goodbye World in the terminal window.
  4. If the character is 'x', display the string Hello World 10 times using a loop, displaying the value of the loop index 1 to 10 as well as the string
  5. If the character is 'e', exit the program, but only after displaying the values of all the characters read from the keyboard, in the correct order, by storing each character, as it is read from the keyboard, in a linked list that is coded using C structs and pointers.
  6. If the character is anything else, do nothing except read the next character.

Step 5 is the most tricky and the most important!

You will be expected to be able to write C programs such as this, without help from the instructor, when you arrive on the first day of C++ Programming for Embedded Systems.

As well as knowing C, delegates should have a basic understanding of embedded systems, microcontroller architecture, and how to read a datasheet. If you are still unsure whether you meet the pre-requisites, please contact Doulos to discuss.

Upcoming Live Webinars

Image 1

Python in One Hour

Friday March 14 2025

1 hour session (All Time Zones)

Learn the basics of the Python language and what makes it different from other programming languages, as well as discover the richness of the Python libraries and add-on packages.

Register Now

Image 1

Building Embedded Products with Zephyr

Wednesday March 19 2025

1 hour session (All Time Zones)

This webinar looks at building Zephyr applications, what sets it apart from other RTOSs/embedded OSs, and how it supports the development and expectations for connected embedded products.

Register Now

Image 1

The Rust Journey: Exploring Safe Systems Programming

Friday March 21 2025

1 hour session (All Time Zones)

In this webinar, we'll delve into the features and benefits of Rust: an evolutionary language that provides memory safety guarantees, performance and concurrency.

Register Now

Image 1

Accelerating Formal Verification Using Non-Determinism

Wednesday March 26 2025

1 hour session (All Time Zones)

This webinar will explain what non-determinism is, how it's used, and show lots of examples so you can take advantage of non-determinism to accelerate the verification of your designs.

Register Now

Image 1

A Guide to Productivity in Vivado using SystemVerilog

Friday March 28 2025

1 hour session (All Time Zones)

We will explore the features of SystemVerilog that are useful for RTL synthesis using the Vivado™ Design Suite from AMD, showing how the RTL SystemVerilog language constructs have been optimized for productivity and reliability.

Register Now

Image 1

EDA Playground Live! SystemVerilog Static and Automatic Lifetimes

Wednesday April 02 2025

30-minute session (All Time Zones)

This webinar presents SystemVerilog's constructs for managing static and automatic lifetimes of variables - demonstrated on EDA Playground.

Register Now